GithubHelp home page GithubHelp logo

daxnet / apworks Goto Github PK

View Code? Open in Web Editor NEW
371.0 371.0 134.0 19.92 MB

Apworks is a flexible, scalable, configurable and efficient .NET based application development framework that helps software developers to easily build enterprise applications by applying either Classic Layering or Command-Query Responsibility Segregation (CQRS) architectural patterns.

C# 98.72% Shell 0.05% Batchfile 0.03% Csound Document 1.20%

apworks's Introduction

Hi there 👋

I used to be a Microsoft Most Valuable Professional (MVP) from the year 2012 to 2019, mostly focused on Development Technologies. Now I am currently working for PerkinElmer Informatics R&D as a Principal Software Engineer.

I am a fan of Microsoft development technologies, specifically, .NET (C#). I am also interested in software architecture, OOAD, DDD, big data, AI and agile development methodologies.

apworks's People

Contributors

daxnet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apworks's Issues

Object Container Casting Issue

When trying to Casting the Object Array with some Generic Types inside Object Container, it will always return null value.

Replace the original content with this shall fix this problem.

src\Apworks\ObjectContainer.cs

     protected virtual T[] DoResolveAll<T>()
         where T : class
     {
        //return this.DoResolveAll(typeof(T)) as T[];
        var original = this.DoResolveAll(typeof (T));
        var casted = new T[original.Length];
        int index = 0;
        var e = original.GetEnumerator();
        while (e.MoveNext())
        {
            casted[index] = e.Current as T;
            index++;
        }
        return casted;
     }

Fluent Interface issue.

WithDefaultSettings configs 2 part of things.

1.IdentityGenerator
2.SequenceGenerator

And the instances for them are "Apworks.Generators.IdentityGenerator" and "Apworks.Generators.SequenceGenerator"

This is NOT correct.

Because when the IdentityGenerator trying to load its instance, an exception will be thrown internally by this line of the codes:

Apworks\Generators\IdentityGenerator.cs

Line 64:

if (type.Equals(this.GetType()))
                    throw new ApworksException("Type {0} cannot be used as identity generator, it is maintained by the Apworks framework internally.", this.GetType().AssemblyQualifiedName);

Change Apworks\Config\Fluent\Extensions.cs

Line 96

return WithIdentityGenerator<IdentityGenerator>(configurator);

To

return WithIdentityGenerator<SequentialIdentityGenerator>(configurator);

shall fix this problem.

Issues when casting object to messages

Apworks\Bus\MessageDispatcher.cs

Line 174

Type messageType = typeof(T);

Here the T is always "object", and the if condition below will never be true.

This issue is caused by : Apworks.Bus.DirectBus\DirectBus.cs

Line 40

private readonly Queue<object> messageQueue = new Queue<object>();

Change it to:

private readonly Queue<dynamic> messageQueue = new Queue<dynamic>();

Will fix it.

This issue also exists in MSMQ Bus.

src/Apworks/Events/EventAggregator.cs中142和143行有误

[TestMethod]
public void ApworksTest()
{
    Dictionary<Type, List<object>> eventHandlers = new Dictionary<Type, List<object>>
    {
        {typeof (int), null}
    };
    var handlers = eventHandlers[typeof (int)];
    if (handlers != null)
    {

    }
    else
    {
        handlers = new List<object>();
    }

    Assert.IsNull(eventHandlers[typeof(int)]); // 断言正确
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.