شرکت فناوری اطلاعات رسمین

ارائه راهکارهای نرم افزاری برای واحد های کاری کوچک و بزرگ، بست و توسعه نرم افزار های کاربردی، طراحی وب سایت برای کلیه واحد های صنفی

شرکت فناوری اطلاعات رسمین

ارائه راهکارهای نرم افزاری برای واحد های کاری کوچک و بزرگ، بست و توسعه نرم افزار های کاربردی، طراحی وب سایت برای کلیه واحد های صنفی

شرکت فناوری اطلاعات رسمین

رسمین مخفف کلمات رستمی و مینو می باشد و با توجه به گسترش روز افزون استفاده از نرم افزار های کاربردی در سال 1392 تصمیم بر این شد که شرکت رسمین را برای ارائه خدمات کامپیوتری نظیر راهنمایی و مشاوره، ایجاد نرم افزار های سفارشی و وب سایت های مورد نیاز کارفرمایان را تأسیس نماییم.

طبقه بندی موضوعی
بایگانی

۶ مطلب با موضوع «مطالب آموزنده» ثبت شده است

Model–view–controller

Model–view–controller (MVC) is a software architectural pattern for implementing user interfaces. It divides a given software application into three interconnected parts, so as to separate internal representations of information from the ways that information is presented to or accepted from the user.

Traditionally used for desktop graphical user interfaces, this architecture has become extremely popular for designing web applications.

انتخاب یک نرم افزار خوب همیشه یکی از دغدغه های مدیران و مشاورین امکلاک بوده است درست است که منبع فایل رسانی تأثیر بسیار زیادی در این زمینه دارد اما نرم افزار خود نیز باید از قابلیت های به روز نیز برخوردار باشد تا در کار مشاورین تأثیر گذاری خوبی داشته باشد. در اینجا به نکاتی که در این زمینه باید مد نظر گرفته شود اشاره می کنیم.

?What Is Interception

What Is Interception?

Interception is an advanced programming technique that allows you to intercept calls to an object so that you can add additional logic before or after the call. This interception process should be virtually transparent, so both the calling object and the target object can be oblivious to the interception process.

The following diagram shows how instance interception typically works:

 

Follow link to expand image

The calling object will typically ask the Unity dependency container for a target object. However, it will not receive a real TargetObject, but rather an intercepting proxy that is impersonating the real TargetObject, for example, by implementing the same interface. This way the calling object does not know if it calls the real target object or the proxy. The TargetObject also doesn't know that the calls have been intercepted. The fact that both classes don't know this about the interception process allows you to add custom logic before or after a member call, without having to change either the calling object or the target object.

 

Interception is quite similar to using the decorator pattern. With a decorator you'll typically have to program a custom decorator class for each target object. However, Unity will dynamically generate the interceptor for you, so all you have to do is implement the custom behaviors.

#Reference

SRE (Simple Rule Engine)

SRE (Simple Rule Engine) is a lightweight forward chaining inference rule engine for .NET. Its ‘simple’ because of the simplicity in writing and understanding the rules written in XML, but this ‘simple’ engine can solve complex problems.

 

#Reference

Simple Introducing About Dependency Injection

Basically, instead of having your objects creating a dependency or asking a factory object to make one for them, you pass the needed dependencies in to the constructor or via property setters, and you make it somebody else's problem (an object further up the dependency graph, or a dependency injector that builds the dependency graph). A dependency as I'm using it here is any other object the current object needs to hold a reference to.

One of the major advantages of dependency injection is that it can make testing lots easier. Suppose you have an object which in its constructor does something like:

public SomeClass() {
    myObject = Factory.getObject();
}

This can be troublesome when all you want to do is run some unit tests on SomeClass, especially if myObject is something that does complex disk or network access. So now you're looking at mocking myObject but also somehow intercepting the factory call. Hard. Instead, pass the object in as an argument to the constructor. Now you've moved the problem elsewhere, but testing can become lots easier. Just make a dummy myObject and pass that in. The constructor would now look a bit like:

public SomeClass (MyClass myObject) {
    this.myObject = myObject;
}

Most people can probably work out the other problems that might arise when not using dependency injection while testing (like classes that do too much work in their constructors etc.) Most of this is stuff I picked up on the Google Testing Blog, to be perfectly honest...

 

#Reference

Simple Introducing About IOC

The Inversion of Control (IoC) and Dependency Injection (DI) patterns are all about removing dependencies from your code.

For example, say your application has a text editor component and you want to provide spell checking. Your standard code would look something like this:

public class TextEditor
{
    private SpellChecker checker;
    public TextEditor()
    {
        this.checker = new SpellChecker();
    }
}

What we've done here is create a dependency between the TextEditor and the SpellChecker. In an IoC scenario we would instead do something like this:

public class TextEditor
{
    private ISpellChecker checker;
    public TextEditor(ISpellChecker checker)
    {
        this.checker = checker;
    }
}

Now, the client creating the TextEditor class has the control over which SpellChecker implementation to use. We're injecting the TextEditor with the dependency.

 

#Reference