‫۱۱ سال و ۲ ماه قبل، یکشنبه ۲۰ مرداد ۱۳۹۲، ساعت ۱۶:۵۲
تعریف دقیق ماژولهای سطح بالا و سطح پایین چیست و چطوری میشه اونها رو در نرم افزار پیداکرد؟
‫۱۱ سال و ۲ ماه قبل، سه‌شنبه ۱۵ مرداد ۱۳۹۲، ساعت ۱۸:۰۹
یک نکته تکمیلی
اگر به هر دلیلی یک کلاس پایه کنترلر را ایجاد کردید که در آن ExecuteCore تحریف شده است، این متد چه با تزریق وابستگی‌ها و چه بدون آن فراخوانی نخواهد شد. (روش صحیح مدیریت این مسایل در ASP.NET MVC استفاده از فیلترها است و نه ارث بری؛ چون در طراحی ASP.NET MVC مباحث AOP به صورت خودکار توسط فیلترها پیاده سازی می‌شوند)
    public class MyBaseController : Controller
    {
        /// <summary>
        /// from http://forums.asp.net/t/1776480.aspx/1?ExecuteCore+in+base+class+not+fired+in+MVC+4+beta
        /// </summary>
        protected override bool DisableAsyncSupport
        { 
            get { return true; } 
        }

        protected override void ExecuteCore()
        {
            base.ExecuteCore();
        }
    }
برای حل این مشکل باید DisableAsyncSupport را اضافه کنید تا ExecuteCore تحریف شده، اجرا گردد (جزو تغییرات MVC4 است).
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۱۴ مرداد ۱۳۹۲، ساعت ۰۵:۲۹
یک نمونه از این پروژه‌ها، پروژه Code Refractor است. خلاصه کاری که انجام می‌دهد شامل مراحل زیر است:
- اسمبلی دات نتی را می‌خواند و bytecodes/operations آن‌را استخراج می‌کند.
- پس از آن، نتیجه را تبدیل به یک کد میانی خاص خودش می‌کند.
- این کد میانی خاص خودش را به ++C ترجمه می‌کند.
- نهایتا از یک کامپایلر ++C برای تولید فایل اجرایی نهایی استفاده خواهد کرد.
اطلاعات بیشتر
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۱۴ مرداد ۱۳۹۲، ساعت ۰۵:۰۱
سلام جناب نصیری
ممنون. این تیپ مقالات خیلی جذابند و البته عمق خوبی به بینش برنامه نویس می‌دهد .
یک سوال
یادم هست در فروم برنامه نویس چشمم به مطلب خورده که نوشته بود امکان دارد که کدهای دات نت تبدیل به کدهای ماشین کرد که دیگر نیازی به نصب دات نت فریم ورک بر روی سیستم مقصد نباشد
یعنی میتوان تمام نیازمندیهای برنامه را از دل فریم ورک بیرون کشید و به برنامه اضافه کرد و در نهایت یک فایل اجرایی قبال اجرا بدون نیاز به فریم

ممکنه توضیح بدهید در این خصوص؟
ممنون  و متشکرم.
‫۱۱ سال و ۲ ماه قبل، دوشنبه ۷ مرداد ۱۳۹۲، ساعت ۱۶:۴۲
با سلام
چطور می‌تونیم یک partialView را به تدریج در صفحه لود کرد؟ مثلا 10 تا عکس را با Ajax می‌خوایم نمایش بدیم به این صورت که پس از خواندن هر عکس، کاربر بتونه آنرا ببیند تا اینکه بقیه عکس‌ها خونده میشه؟
‫۱۱ سال و ۳ ماه قبل، سه‌شنبه ۲۵ تیر ۱۳۹۲، ساعت ۱۲:۲۸
عرض کردم تعاریف ObjectFactory.Initialize و ارتباط دادن اینترفیس‌ها به کلاس‌های متناظر شما ناقص است. الان TABMPCREWService خودش دارای یک وابستگی تزریق شده در سازنده آن به نام IUnitOfWork است که تعاریف مرتبط با آن در قسمت ObjectFactory.Initialize ذکر نشدند.
یعنی این IoC Container نمی‌دونه برای وهله سازی کلاس TABMPCREWService زمانیکه به IUnitOfWork رسید از چه کلاسی باید استفاده کند.
‫۱۱ سال و ۳ ماه قبل، سه‌شنبه ۲۵ تیر ۱۳۹۲، ساعت ۰۵:۵۶
من مطلب بالا را مطالعه کردم و با توجه به مطلب بالا کدهای خودم را به صورت زیر تغییر دادم

لایه Service
namespace ServiceLayer.EFServices
{
    public class TABMPCREWService : ITABMPCREWService
    {
        private IUnitOfWork _uow;
        private IDbSet<TABMPCREWS> _tabmpcrews;

        public TABMPCREWService(IUnitOfWork uow)
        {
            this._uow = uow;
            _tabmpcrews = uow.Set<TABMPCREWS>();
        }

        public int Add(TABMPCREWS personnel)
        {
            int rowEffect = 0;

            _tabmpcrews.Add(personnel);
            rowEffect = _uow.SaveChanges();
            return rowEffect;
        }

    }
}
و اینترفیس
namespace ServiceLayer.Interface
{
    public interface ITABMPCREWService
    {
        int Add(TABMPCREWS personnel);
    }
}
و فایل Global
 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);
            ObjectFactory.Initialize(x =>
            {
                x.For<ITABMPCREWService>().Use<TABMPCREWService>();
               // x.For<IUsersService>().Use<UsersService>();
            });
            ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
           // initStructureMap();
        }
و
 public class StructureMapControllerFactory  : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
                throw new InvalidOperationException(string.Format("Page not found: {0}", requestContext.HttpContext.Request.Url.AbsoluteUri.ToString(CultureInfo.InvariantCulture)));
            return ObjectFactory.GetInstance(controllerType) as Controller;
        }
    }
و کد کنترلر
public class HomeController  : Controller
    {
        public readonly ITABMPCREWService aa ;
        public HomeController(ITABMPCREWService tabmpcrewService)
        {
            aa = tabmpcrewService;
        }

        public ActionResult Index()
        {

            TABMPCREWS tt = new TABMPCREWS()
            {
                DTLASTUPDATEDDATE = DateTime.Now,
                INTOTRATE = 122,
                INTRATE = 215,
                VCCODEDESCRIPTION = "fff858699",
                VCCODEVALUE = "fff858699",
                VCLASTUSERID = "fff858699",
                INTCREWCODE = 105652
            };
            aa.Add(tt);


            ViewBag.Message = "Welcome to ASP.NET MVC!";

            return View();
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your app description page.";

            return View();
        }

public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
اما زمان اجرا این خطا رو بهم میده و از این خط خطا می‌گیره


‫۱۱ سال و ۳ ماه قبل، سه‌شنبه ۲۵ تیر ۱۳۹۲، ساعت ۰۵:۰۵
این خطا یعنی تنظیمات اولیه ناقصی دارید. مراجعه کنید به مطلب «استفاده از StructureMap به عنوان یک IoC Container» برای توضیحات بیشتر در مورد نحوه تعریف ObjectFactory.Initialize و ارتباط دادن اینترفیس‌ها به کلاس‌های متناظر.