#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
با تمام شدن روز ۲۹ اسفند و شروع نشدن ۱ فرودین
ما الان تو نسخه beta سال ۹۵ قرار داریم
و ساعت ۸ صبح میریم واسه release نهایی 😉
ما الان تو نسخه beta سال ۹۵ قرار داریم
و ساعت ۸ صبح میریم واسه release نهایی 😉
Forwarded from Mohammad Ebrahimi
امیدوارم در سال نو همیشه لبخند بر لبانتون باشه 😊و هیجان موفقیت در دلتون 😃
🌹 سال نو مبارک 🌹
🌹 سال نو مبارک 🌹
#NodeJs
توسعه اپلیکیشنهای Node.js در ویژوال استودیو
https://pbs.twimg.com/media/CagZuecUAAAwj3z.png
یک پلتفرم جاوا اسکریپتی سمت سرور است که جهت ساخت اپلیکیشنهای مقیاسپذیر تحت شبکه استفاده می شود.
ا Node.js در پشت صحنه از موتور رانتایم V8 (موتور پردازش جاواسکریپت مرورگر کروم) استفاده میکند
ا Node.js به سرعت معروف است و از کاربرد های آن می توان به توسعه اپلیکیشن های بلادرنگ (Realtime مثلا برای چت) اشاره کرد.
در مقاله زیر مثالی از کار با NodeJs در VisualStadio را خواهید دید.
https://goo.gl/VnjZQg
@IranAspMvc
توسعه اپلیکیشنهای Node.js در ویژوال استودیو
https://pbs.twimg.com/media/CagZuecUAAAwj3z.png
یک پلتفرم جاوا اسکریپتی سمت سرور است که جهت ساخت اپلیکیشنهای مقیاسپذیر تحت شبکه استفاده می شود.
ا Node.js در پشت صحنه از موتور رانتایم V8 (موتور پردازش جاواسکریپت مرورگر کروم) استفاده میکند
ا Node.js به سرعت معروف است و از کاربرد های آن می توان به توسعه اپلیکیشن های بلادرنگ (Realtime مثلا برای چت) اشاره کرد.
در مقاله زیر مثالی از کار با NodeJs در VisualStadio را خواهید دید.
https://goo.gl/VnjZQg
@IranAspMvc
#Linq, #EntityFramework , #SqlServer
افزونه ای برای LinqPad جهت مشاهده Execution Plan کوئری های Linq
https://www.aboutmycode.com/wp-content/uploads/2016/03/Query-Plan.png
LINQPad.QueryPlanVisualizer
SQL Server query execution plan visualizer for LINQPad.
قابلیت ها:
* View query execution plan
* View missing indexes for query
* Create missing indexes
* Open plan in SQL Server Management Studio or other default app
* Save plan to xml file
https://goo.gl/x9dfEx
https://github.com/Giorgi/LINQPad.QueryPlanVisualizer
https://www.linqpad.net/
@IranAspMvc
افزونه ای برای LinqPad جهت مشاهده Execution Plan کوئری های Linq
https://www.aboutmycode.com/wp-content/uploads/2016/03/Query-Plan.png
LINQPad.QueryPlanVisualizer
SQL Server query execution plan visualizer for LINQPad.
قابلیت ها:
* View query execution plan
* View missing indexes for query
* Create missing indexes
* Open plan in SQL Server Management Studio or other default app
* Save plan to xml file
https://goo.gl/x9dfEx
https://github.com/Giorgi/LINQPad.QueryPlanVisualizer
https://www.linqpad.net/
@IranAspMvc
#Animation, #CSS
https://www.czech-this.com/wp-content/uploads/2014/01/animation.png
بهترین Library های انیمیشن Css3
https://daneden.github.io/animate.css/
https://h5bp.github.io/Effeckt.css/
انیمیشن های لرزش (Shake) با Css3
https://codepen.io/elrumordelaluz/pen/pHKcC
@IranAspMvc
https://www.czech-this.com/wp-content/uploads/2014/01/animation.png
بهترین Library های انیمیشن Css3
https://daneden.github.io/animate.css/
https://h5bp.github.io/Effeckt.css/
انیمیشن های لرزش (Shake) با Css3
https://codepen.io/elrumordelaluz/pen/pHKcC
@IranAspMvc
#Phalanger, #PhpCompiler, #Php
https://docs.google.com/uc?authuser=0&id=0B0EhCmFhZGlWd0VxNGtTNUU2RUk
اجرای کد های PHP در .Net توسط موش خرمای جهنده ! (Phalanger)
پروژه ی Phalanger (موش خرمای جهنده) - بخوانید فلانجر - پروژه سورس بازی است که امکان Compile و اجرای کد های PHP را در دات نت فراهم میکند.
در نتیجه بزرگترین سودی که به توسعه دهندگان AspNet میرساند، توانایی استفاده همزمان از زبان محبوب و راحت Php در کنار فریمورک قدرتمند .Net می باشد.
بدین صورت علاوه بر هاست کردن کد های Php بر روی IIS میتوانید از کتابخانه های موفق و قدرتمندی که برای Php نوشته شده است، در وبسایت خود استفاده کنید.
دیگر قابلیت ها:
افزایش Performance کد های Php به دلیل Compile کردن (https://goo.gl/Qk08B0)
امکان استفاده و اجرای کتابخانه های نوشته شده توسط دات نت در Php
سایت :
https://www.php-compiler.net/
مخزن پروژه :
https://github.com/DEVSENSE/Phalanger
اطلاعات بیشتر :
https://phalanger.codeplex.com/
https://en.wikipedia.org/wiki/Phalanger_(compiler)
https://wiki.php-compiler.net/Phalanger_Wiki
آموزش شروع کار با Phalanger در دات نت
https://www.codeproject.com/Articles/17311/Phalanger-PHP-for-NET-Introduction-for-NET-develop
نمونه استفاده موفق از یک پلاگین Php در AspNet Mvc
https://www.codeproject.com/Tips/1004596/Using-Responsive-File-Manager-in-ASP-NET-MVC
افزونه PHP Tools for Visual Studio
این افزونه ویژوال استادیو را به ویرایشگر قدرتمندی برای زبان محبوب Php تبدیل میکند که در سایت devsense.com میتوانید امکانات و توضیحات کامل آن را ببینید. و از مهمترین امکانات آن میتوان به موارد زیر اشاره کرد.
Syntax Highlighting
AutoComplete & IntelliSense
Shows embedded documentation
Debugging (with Breakpoint)
این افزونه غیر رایگان بوده و در آدرس زیر قابل دسترس است
https://visualstudiogallery.msdn.microsoft.com/6eb51f05-ef01-4513-ac83-4c5f50c95fb5
افزونه Phalanger & Tools for Visual Studio
این افزونه علاوه بر تمامی امکانات افزونه قبلی، امکانات Phalanger را نیز داراست بنابراین، امکان Compile و اجرای کد های Php را در کنار کد های دات نت فراهم میسازد.
این افزونه غیر رایگان بوده و در آدرس زیر قابل دسترس است
https://visualstudiogallery.msdn.microsoft.com/419916fb-ec89-4f18-ba97-75cf66037797
@IranAspMvc
https://docs.google.com/uc?authuser=0&id=0B0EhCmFhZGlWd0VxNGtTNUU2RUk
اجرای کد های PHP در .Net توسط موش خرمای جهنده ! (Phalanger)
پروژه ی Phalanger (موش خرمای جهنده) - بخوانید فلانجر - پروژه سورس بازی است که امکان Compile و اجرای کد های PHP را در دات نت فراهم میکند.
در نتیجه بزرگترین سودی که به توسعه دهندگان AspNet میرساند، توانایی استفاده همزمان از زبان محبوب و راحت Php در کنار فریمورک قدرتمند .Net می باشد.
بدین صورت علاوه بر هاست کردن کد های Php بر روی IIS میتوانید از کتابخانه های موفق و قدرتمندی که برای Php نوشته شده است، در وبسایت خود استفاده کنید.
دیگر قابلیت ها:
افزایش Performance کد های Php به دلیل Compile کردن (https://goo.gl/Qk08B0)
امکان استفاده و اجرای کتابخانه های نوشته شده توسط دات نت در Php
سایت :
https://www.php-compiler.net/
مخزن پروژه :
https://github.com/DEVSENSE/Phalanger
اطلاعات بیشتر :
https://phalanger.codeplex.com/
https://en.wikipedia.org/wiki/Phalanger_(compiler)
https://wiki.php-compiler.net/Phalanger_Wiki
آموزش شروع کار با Phalanger در دات نت
https://www.codeproject.com/Articles/17311/Phalanger-PHP-for-NET-Introduction-for-NET-develop
نمونه استفاده موفق از یک پلاگین Php در AspNet Mvc
https://www.codeproject.com/Tips/1004596/Using-Responsive-File-Manager-in-ASP-NET-MVC
افزونه PHP Tools for Visual Studio
این افزونه ویژوال استادیو را به ویرایشگر قدرتمندی برای زبان محبوب Php تبدیل میکند که در سایت devsense.com میتوانید امکانات و توضیحات کامل آن را ببینید. و از مهمترین امکانات آن میتوان به موارد زیر اشاره کرد.
Syntax Highlighting
AutoComplete & IntelliSense
Shows embedded documentation
Debugging (with Breakpoint)
این افزونه غیر رایگان بوده و در آدرس زیر قابل دسترس است
https://visualstudiogallery.msdn.microsoft.com/6eb51f05-ef01-4513-ac83-4c5f50c95fb5
افزونه Phalanger & Tools for Visual Studio
این افزونه علاوه بر تمامی امکانات افزونه قبلی، امکانات Phalanger را نیز داراست بنابراین، امکان Compile و اجرای کد های Php را در کنار کد های دات نت فراهم میسازد.
این افزونه غیر رایگان بوده و در آدرس زیر قابل دسترس است
https://visualstudiogallery.msdn.microsoft.com/419916fb-ec89-4f18-ba97-75cf66037797
@IranAspMvc