question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Problems with multiple modules using a Application/Core layer?

See original GitHub issue

Our team intends to use abp to reconstruct our system.

However, we encountered a problem we do not know how best practices.

Our project has two modules: user center and management center.

For example, in our Application layer below: void CreateUserResume (CreateUserResumeInput input);

We need two similar methods, one for the user center to use, one for the management center to use,

a lot like this approach. (Because the parameters of the method and the return value may be different.)

In the future may also increase ios android.

We thought about the following way:

Void CreateUserResumeAdmin (CreateUserResumeAdminInput input);
Void CreateUserResumeUser (CreateUserResumeUserInput input);
Void CreateUserResumeIOS (CreateUserResumeIOSInput input);
Void CreateUserResumeAndroid (CreateUserResumeAndroidInput input);

But feel is not a best practice

In this case the Application layer and the Core layer approach how to deal with?

thank you very much!

Issue Analytics

  • State:closed
  • Created 7 years ago
  • Comments:9 (9 by maintainers)

github_iconTop GitHub Comments

1reaction
wocarcommented, Dec 16, 2016

I think application layer should be platform as platform agnostic as possible. How ever, if you still need specific methods for your specif platform what you can do is create an Application module for each platform example:

YourProject.Application.IOS YourProject.Application.Android YourProject.Application.Desktop

And share a common project with common base classes

YourProject.Application.Common so that you cam reuse your code. However I still think the best approach could be to make your application layer as platform agnostic as possible for example instead of doing

Void CreateUserResumeUser (CreateUserResumeUserInput input); Void CreateUserResumeIOS (CreateUserResumeIOSInput input); Void CreateUserResumeAndroid (CreateUserResumeAndroidInput input);

Make CreateUserResumeUserInput have a property called

Public string Platform { get; set; }

El El jue, 15 de diciembre de 2016 a la(s) 9:44 p.m., maliming < notifications@github.com> escribió:

@wocar https://github.com/wocar If so to write Parameters and return values are applicable to all modules This does not seem appropriate Some services do not require some attributes And the attribute itself has validation rules

I think most systems have management and user modules However, abp not found in the relevant examples

Our team thought of some solutions but not how appropriate

— You are receiving this because you were mentioned.

Reply to this email directly, view it on GitHub https://github.com/aspnetboilerplate/aspnetboilerplate/issues/1666#issuecomment-267510409, or mute the thread https://github.com/notifications/unsubscribe-auth/AIycYS68-0N10S3VKiJP6hxBIY8XT7kUks5rIgkvgaJpZM4LOxVB .

0reactions
malimingcommented, Dec 18, 2016

@hikalkan Very grateful, next week we will try!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Separating Application (Business Logic) Layer to Multiple ...
Since the project is pretty huge, I'm now considering to separate the Application Layer into Multiple Module Layers. For e.g. Application.
Read more >
Modules on the same layer in layered architecture
In theory in layered architecture you can have multiple modules on the same layer. Can this modules cross reference to each other? Is...
Read more >
Common web application architectures
Architect Modern Web Applications with ASP.NET Core and Azure | Explore the common web application architectures.
Read more >
Layered Architecture with ASP.NET Core, Entity ...
In this article we will show how to Create Layered Application with performing CRUD operations on ASP.NET Core Web application using Entity ......
Read more >
Hexagonal Architecture, there are always two sides to ...
The goal of traditional Layered Architectures is to segregate an application into different tiers, where each tier contains modules and ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found