بررسی Unity, Castle Windsor, StructureMap و Ninject
بسم الله الرحمن الرحیم
بررسی Unity, Castle Windsor, StructureMap و Ninject
یک مقایسه سریع بر روی چهار DI و IoC داشتم و ابزارهای Unity, Castle Windsor, StructureMap و Ninject را با دو سناریو متفاوت بررسی شدند.
در یکی از سناریوها ایجاد اشیا بدون سازنده و در سناریو دیگر اشیا با پارامترهای تزریق شده در سازنده شان بررسی شدند.در ابتدا قبل از هر چیزی سعی کردم مطئن شویم که در زمان فراخوانی متدها اشیا ایجاد شوند. نتیجه ایجاد اشیا به وسیله سازنده پیش فرض به صورت زیر است.
بسم الله الرحمن الرحیم
بررسی Unity, Castle Windsor, StructureMap و Ninject
یک مقایسه سریع بر روی چهار DI و IoC داشتم و ابزارهای Unity, Castle Windsor, StructureMap و Ninject را با دو سناریو متفاوت بررسی شدند.
در یکی از سناریوها ایجاد اشیا بدون سازنده و در سناریو دیگر اشیا با پارامترهای تزریق شده در سازنده شان بررسی شدند.در ابتدا قبل از هر چیزی سعی کردم مطئن شویم که در زمان فراخوانی متدها اشیا ایجاد شوند. نتیجه ایجاد اشیا به وسیله سازنده پیش فرض به صورت زیر است.
در دوم من پارامترهای سازنده ها را به وسیله DI/IoC به آنها تزریق کردم. زمان ها کمی تغییر کرد اما جایگاه این 4 ابزار تغییری نکرد.
در نهایت مقایسه دو تست صورت گرفته به صورت زیر است.
StructureMap
StructureMap بهترین ابزاری است که می توانید درNET. می توانید از آن استفاده کنید. Unity و Castle Windsorنیز نتایج خوبی داشتند هر چند Unity در سناریوهای پیچیده سریعتر کار می کند. Ninject خیلی کند است هر چند از lightweight code generation (LCG) یا کد سبک استفاده می کند.
آموزش Ninject را نیز قبلا معرفی کرده ایم.
در حال حاضر فکر می کنم کار با StructureMap بسیار خوب است زیرا می توان به سادگی آن را یاد گرفت و از آن استفاده کرد. همچنین می تواند به خوبی از fluent API استفاده کند. امیدواریم در نسخه های بعدی ابزارهای معرفی شده نیز بهتر شوند.
رهگذر
ممنون استاد بزرگوار.
اسماعیلشیدایی
با عرض سلام
در حال حاضر که آموزشی برای StructureMap در وب سایت قرار داده نشده است اما حتما مطلب کاملی را نیز در زمینه Ioc ها بر روی وب سایت قرار خواهیم داد.
یاعلی
رهگذر
شما در مقایسه ای که انجام دادین ninject نمره بهتری گرفته.
اسماعیلشیدایی
با عرض سلام
اعداد مشخص شده مدت زمانی است که هر ابزار برای انجام کار نیاز دارد ، بنابراین Ninject مدت زمان بیشتری را از ما برای انجام کار خواهد گرفت پس نسبت به بقیه ابزار ها کند تر است
موفق باشید