نقدی بر طراحی PHP
EF Code First #12
سوالی که با خواندن این مطلب برای من پیش آمده اینه که فرض بگیرید بعد از مدتی شما تصمیم میگیرید ORM تون رو عوض کنید و تبدیل کنید به Nhibernate ولی شما چون در همه جا از جمله درUI و Application Service از IUnitOfWork استفاده کرده اید چه طور میخواهید این کار را انجام دهید
با تشکر فراوان
- البته در حالت دستی عنوان شده امکان تعریف آیکون و غیره هم هست. در متن، لینک داده شده به مراجع تولید فایلهای vstemplate و vscontent که برای نمونه یک مدخل اضافهتر برای آیکون پیدا میکند:
<Icon>__Template_small.png</Icon>
Owin چیست ؟ قسمت اول
به صورت پیش فرض یک پروژه MVC بدون وابستگی به Owin پیاده سازی میشود و برای این منظور میتوانید یکی از موارد زیر را انجام دهید:
»امکان هاست سرویسها روی IIS. در این صورت Owin فقط به صورت یک Middleware عمل خواهد نمود و در این حالت دیگر نیاز به نوشتن HttpModuleها نخواهید داشت. البته این روش به System.Web وابستگی دارد(Microsoft.Owin.Host.SystemWeb )
»استفاده از OwinHost.Exe که در واقع بک پیاده سازی دیگر برای Owin است و عملیات bootstrapping را بر عهده خواهد داشت. در نتیجه شما فقط موارد مربوط به middleWare در application انجام خواهید داد.
»استفاده از Owin Self Hosting برای هاست سرویسها در قالب برنامه Console یا Windows Service
(Microsoft.Owin.Host.HttpListener )
معرفی سرویسهای ارائه شده توسط شرکتهای گوگل، آمازون و مایکروسافت در قالب رایانش ابری - قسمت دوم
سرویسها و اجزای وب سرویس آمازون:
وب سرویسهای آمازون دارای اجزای زیادی میباشند. تعدادی از این سرویسها برای ارائه خدمات پردازشی و تعداد دیگری برای ارائه فضای ذخیرهسازی، عرضه شدهاند. در ادامه گروهی از این سرویسها معرفی میگردد:
- ابر محاسباتی توسعه پذیر آمازون (EC2)
- سرویس صف ساده آمازون(Simple Queue Service): یک صف پیام یا سیستم تراکنش برای برنامههای مبتنی بر اینترنت توزیع شده میباشد. این سرویس تضمین میکند که پیامها حتی در زمانی که مؤلفهای موجود نیست، گم نشود و برای انتقال پیام میان مؤلفههای مختلف که هرکدام کار جداگانهای را انجام میدهند، بسیار مناسب است.
- سرویس
آگاه سازی ساده آمازون(Simple Notification Service): ): وب سرویسی است که میتواند پیام
یک برنامه را منتشر کند و آنها را به برنامهها یا مشترکین دیگر منتقل کند. SNS متدی
را برای راهاندازی فعالیتها ارائه مینماید که برنامهها را قادر میسازد تا در
مورد اطلاعات جدید یا تغییر یافته از آنها نظرسنجی شود یا به روز رسانیها را
انجام دهند.
- سرویس
نظارت ابر آمازون(Amazon Cloud Watch): کنسولی
را فراهم میکند که در آن مصرف منابع، شاخصهای کلیدی عملکرد سایت و نشانگرهای
عملیاتی برای عواملی همچون تقاضای پردازشگر، مصرف دیسک و ورودی و خروجی شبکه را
ارائه میدهد. نتایج
معیارهایی که توسط آن کسب میشود برای فعالسازی قابلیتی به نام Auto Scaling مورد
استفاده قرار میگیرد که به صورت خودکار میتواند یک سایت EC2 را بر مبنای مجموعهای از قوانین
که توسعه دهنده ایجاد میکند، توسعه دهد.
- توازن بار منعطف(Elastic Load Balancing): نمونههای ماشین آمازون(Amazon Machine Image) با استفاده از این قابلیت، دارای امکان توازن بار ترافیکی میشوند. این قابلیت هنگامی که نمونهای دچار شکست میشود آن را کشف کرده و ترافیک را به یک نمونه سالم حتی نمونهای در محیطهای دیگر AWS مسیریابی مجدد میکند.
قیمت گذاری انواع مختلف نمونه ماشین آمازون به سه پارامتر وابسته است. اولین مورد سیستم عامل مورد استفاده است. دومین عامل مرکز دادهای است که در آن قرار گرفته و سومین عامل مدت زمانی است که اجرا میشود. نرخها بر مبنای ساعت محاسبه میشوند. علاوه بر آن مبالغ اضافی نیز بابت موارد زیر اخذ میشود:
- میزان داده
منتقل شده
- آدرسهای IP اختصاصی
- استفاده
سرور اختصاصی مجازی از فضای ذخیرهسازی بلوکی توسعه پذیر آمازون
- استفاده از توازن بار توسعه پذیر برای دو یا چند سرور
- سایر
ویژگیهای مورد نیاز
- نمونه
مبتنی بر تقاضا: نرخ
ساعتی بدون التزام طولانی مدت
-
نمونه رزرو شده: خرید قراردادی هر نمونه با هزینه به مراتب پایینتر به ازای هر ساعت بعد از رزرو اولیه
-
نمونه نقطهای: این متد برای قیمت گذاری بر روی ظرفیت استفاده نشده EC2 بر مبنای قیمت نقطه فعلی است. این قابلیت، قیمتهای بسیار پایین را به همراه خواهد داشت اما در زمانهای مختلف فرق میکند یا در زمانی که ظرفیت مازادی نباشد، در دسترس نخواهد بود.
نوع | موتور محاسبه | حافظه اصلی(GB) | ذخیره سازی(GB) | سکو |
ریز نمونه | تا دو واحد محاسباتی در انفجار بار | 0.613 | EBS | 32 یا 64 بیتی |
نمونه کوچک | یک واحد محاسباتی | 1.7 | 160 | 32 بیتی |
نمونه بزرگ | چهار واحد محاسباتی | 7.5 | 850 | 64 بیتی |
نمونه بسیار بزرگ | هشت واحد محاسباتی | 15 | 1690 | 64 بیتی |
Url Routing در ASP.Net WebForms
<%@ Application Language="C#" %> <script runat="server"> void Application_Start(object sender, EventArgs e) { // Code that runs on application startup System.Web.Routing.RouteTable.Routes.MapPageRoute("NewsDatils", "News/{pi}/{pt}", "~/ShowNews.aspx"); } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown }
بعد تو صفحه لینک اینجوری نوشتم
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# string.Format("/News/{0}/{1}",Eval("NewsID"),Eval("NewsTitle").ToString().Replace(" ","-")) %>' Text='<%# Eval("NewsTitle") %>'></asp:HyperLink>
int p = int.Parse(Page.RouteData.Values["pi"].ToString());
Cannot use a leading .. to exit above the top directory.
اما هر بار بعد از اینکه یک مقاله در کش ذخیره شد به ازای مقالات دیگر همان مقاله ابتدایی که در کش ذخیره شده بازیابی میشود. این نمونه دستور من برای بازیابی هست.
public Article GetById(int id) { return articles.Where(e => e.Id == id).Include(x => x.Category).Include(x => x.Tags).Cacheable(x => x.FirstOrDefault()); }
چرا از آنگولار به ری اکت + ری داکس سوئیچ کردم!
اگر شخصی برنامه نویس باشد و توانایی یادگیری داشته باشد میتواند تمام تکنولوژیها رو بررسی کند و یک یا چند تکنولوژی رو بر اساس نیاز انتخاب کند.
بحث نه ماکروسافت هست ونه گوگل و غیره
مهم داشتن تکنولوژی و همراه شدن با تکنولوژیها میباشد. حال اینکه بیایم آنگولار رو زیر سوال ببریم یا بگوییم ماکروسافت خوب نیست و یا ری اکت بهتر هست همه این موضوعات مرتبط با نحوه استفاده از تکنولوژی میباشد.
در نهایت تخریب یک مطلب و یا یک تکنولوژی دردی را دوا نمیکند. اگر توانایی ایجاد یک فریم ورک را دارید طراحی کنید تا همه لذت ببرند نه اینکه فقط حرف زده شود