#1 mORMot 1 » OnFailed and reconnection » 2021-08-03 18:59:25

fabiovip2019
Replies: 1

Hi,

I implemented the OnFailed method of the TSQLRestClientURI class so that it is possible to perform reconnections between client and server when there is a failed request. It worked correctly but as the method is only called when the request fails, the request that originated the method is not executed. I decided with a repeat loop for him to resend the request until it returns the status OK. It worked, but I don't think it's the best option. Someone has used or knows some practice to perform these reconnections instantly.

Note: when I say request I am referring to a simple TSQLRestClientURI.Add

Reference: https://synopse.info/forum/viewtopic.php?id=5694

#2 Re: mORMot 1 » SOA - reconnect » 2021-08-03 16:20:43

Hi @radexpol

I implemented this event to handle ORM reconnections in my project. It is called when a request occurs and returns an error, it worked ok, however this request which triggered the error event, it is not executed. You know how to fire a request of your own that fired the error event?

I don't know if I was too confused eheheh

#3 Re: mORMot 1 » Problems with triggers and TDDDMonitoredDaemonProcessRest » 2021-07-12 12:36:11

Hi Ab, I found out that the problem is related to my mounted where clause.
It does not work:
IdWooCommerce>0 and (SyncSupraWoo=? or SyncSupraWoo is null)

but it works:

SyncSupraWoo=? or SyncSupraWoo is null

I can't use clause and with or.

#4 Re: mORMot 1 » Problems with triggers and TDDDMonitoredDaemonProcessRest » 2021-07-12 11:43:19

That's right Ab, in TDDDEmailerDaemonProcess who the method's True or False result is controlled according to the value of TSQLRecord's State field.

fPendingTask := (fDaemon as TDDDEmailerDaemon).RestClass.Create(
    fDaemon.Rest,'State=? order by RowID',[ord(esPending)]);

that's exactly what doesn't work in my case, when the value of this field is changed by a trigger in the Bank a some manual update.
TSQLRecord in my case doesn't recognize that the field value has changed, so the method never returns True.

#5 Re: mORMot 1 » Problems with triggers and TDDDMonitoredDaemonProcessRest » 2021-07-09 18:58:07

hi ab,
Maybe I expressed myself wrongly. When I say monitor I am referring to the ExecuteRetrievePendingAndSetProcessing method which is checking the value of a given field to return true or false. that's the concept of pendingtask isn't it? or am I mistaken?

#7 Re: mORMot 1 » Problems with triggers and TDDDMonitoredDaemonProcessRest » 2021-07-09 11:53:34

Hi, Ab

The TDDDMonitoredDaemonProcessRest class serves to monitor the state of some field in a table and perform an action on the value contained in this field, right?
When the change in the value of this field being monitored occurs via trigger directly in the database, this change is not seen by TSQLRecord.
This way, when this SyncSupraWoo field is receiving a value directly from a trigger in the database, fPendingTask is never created. Understood?

#8 mORMot 1 » Problems with triggers and TDDDMonitoredDaemonProcessRest » 2021-07-08 15:31:55

fabiovip2019
Replies: 8

Hi everyone, I'm using the TDDDMonitoredDaemonProcessRest class to monitor some update states within the system. This monitoring takes place on a field changed via trigger directly in the database. The problem is that orm only recognizes the changes when I start the server, then all subsequent changes are not recognized by orm.
Is there any kind of refresh from TSQLRecord?
See the code excerpt below:

function TProductDaemonProcess.ExecuteRetrievePendingAndSetProcessing: boolean;
begin
   fPendingTask := (fDaemon as TSyncProdutoIntegraDaemon).RestClass.Create(
   fDaemon.Rest,'IdWooCommerce>0 and (SyncSupraWoo=? or SyncSupraWoo is null)',['N']);
  if fPendingTask.ID=0 then begin
    result := false; 
    exit;
  end;
end;

#9 Re: mORMot 1 » Problem with TRecordVersion in linux » 2021-06-02 13:55:31

Hi Ab, I checked the logs and there was nothing to indicate a problem, so I updated the versions of fcp installed on jenkins and it started working again. Thanks.

#10 Re: mORMot 1 » Problem with TRecordVersion in linux » 2021-06-01 17:39:47

Hi Ab, Thanks for the answer, when you say differences between dbs are you referring to the difference between the master and the slave or the db installed on linux and the db installed on windows? The problem happens in the db master

#11 mORMot 1 » Problem with TRecordVersion in linux » 2021-06-01 15:12:12

fabiovip2019
Replies: 4

Hello everyone, I recently noticed a strange behavior in relation to TSQLRecords that have the property TRecordVersion compiled in linux. Every time I restart the service the Counter of the Version Field is reset. This doesn't happen when compiling on windows. Has anyone ever experienced this? Do you know how to solve it?

#12 mORMot 1 » Domain events using Master / slave replication » 2021-03-31 15:08:01

fabiovip2019
Replies: 0

Some time ago I posted about a question related to how I could work the master / slave replication according to the architecture recommendation described in the related topic
https://synopse.info/forum/viewtopic.php?id=5788
Does anyone have any idea how to work with this since the restserverdb are no longer exposed on TSQLHttpServer?

#13 Re: mORMot 1 » Domain events with persistence » 2021-03-22 12:33:45

Hi uian2000, is that I'm actually using master / slave replication as a way to work on persistent domain events, something that is recommended by Ab himself.


Hi Ab,
yes i can use replication via websocket with the proper infrastructure, however for that i would need to expose my RestServerDB in a TSQLHttpServer for this is not it? Wasn't the purpose of the post I indicated in the link just to isolate the RestServerDB and not expose them directly to TSQLHttpServer?

#14 mORMot 1 » Domain events with persistence » 2021-03-18 14:17:12

fabiovip2019
Replies: 3

Hello everyone,
I am using the structure of mormot Master / slave replication to work on the persistence of domino events via websocket and to ensure that all event subscribers receive the event.
In fact, using this structure works very well. However recently I implemented a change followed by @tbo in the following post: https://synopse.info/forum/viewtopic.php?id=5788 where I decouple the RestServerDb from SQLHttpServer using a TSQLRestServerFullMemory as an intermediary. Well, this way my old structure of domino events with websocket does not work, because the master / slave replication needs to expose the Restserverdb in the TSQLHttpServer of websocket. Is there a way to work on this master / slave replication using this decoupled structure? Has anyone implemented this?

#15 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-16 11:51:46

Would the TDDDRepositoryRestFactory builder call each request from the rest then?

#16 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-15 19:32:41

Hi Ab, can this proposed architecture retrieving databases from a dictionary be applied to the structure of mormotDDD? Isn't the cost too high to keep making the repositories at all times?

I am referring to this:

 aRestServer.ServiceContainer.InjectResolver(
    [
    TRepoUserFactory.Create(aRestServer),
  TRepoDomainEventFactory.Create(aRestServer)
   ], True); 

#17 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-15 11:58:26

Thanks Ab, I ended up following this same line of thought this weekend and ended up implementing it, my dbs were already separated by int64 so I separated them via root uri, really the advantages are many. The fact that you can cache an entire layer is fantastic. I'm only concerned with callbacks now. since before each callback only supports the subscribers of the rest layer of the specific database. But now everyone will be signed to a single layer, right? Thanks to all tbo, vitaly and ab for the answers, they clarified many of my questions.

#18 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-12 19:36:45

Hy tbo thanks for your explanation, I understand this level of decoupling, but the situation is complicated when I need to deal with several databases on a single server. This information of which database I should connect to could come from a right jwt? even so i would have to store a list of tsqlrestserverdb to know which database persists.
Is this level of decoupling simply for security or architecture? because if it is for security, I get that same level of decoupling simply by not defining my cqrs services that in fact make use of databases. But I agree that the tsqlrecords are exposed even though they need to be protected by some type of authentication, in this case I am using jwt

#19 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-12 17:41:30

Hello Vitaly ,  let me see if I understand. Are you suggesting that I do not expose my TSQLRestServerDB via TSQLHttpServer but use a TSQLRestServerFullMemory that connects as a client of my TSQLRestServerDB? Is there a way to expose my rest server layer without coupling it to a TSQLHttpServer?

#20 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-12 11:51:22

Hi Ab, I didn't understand your statement. It got a little out of the context of my questioning. But about the suggestion, do you suggest that I have a TSQLRestServerFullMemory acting as a gateway that chooses the right bank? But at some point I will need to communicate with TSQLREstServerDB, would I do that with a client connection?

#21 Re: mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-11 18:06:35

Hi Ab, thanks for the reply, my idea was as follows: each service of mine is a different server. In each service I have several tenants using this service. This architectural pattern is already known (Multi-tenant APP with Simple tenant Database)
This inside the mormot I can easily separate by the instance of TSQLRestServerDB where each tenant of mine is a specific root.
The result of this is that I can in each service of mine (when I say service I am referring to a business object) with several databases linked to this service

I will explain using the classes of the mormot itself to facilitate the understanding:

TSQLHttpServer(this represents my business service)--->TSQLRestServerDB1,TSQLRestServerDB2,TSQLRestServerDB3 ....(this represents the tenants' databases)

on another server

TSQLHttpServer(this represents my business service)--->TSQLRestServerDB1,TSQLRestServerDB2,TSQLRestServerDB3 ....(this represents the tenants' databases)
Do you notice that I solve the isolation of the tenent in the architecture of the mormot?

I have a common service that does what you suggested, returns the ideal root for the ideal server. However, when a new tenant starts using a service that he was not part of on a server (in the case of hiring a product of ours) I need to instantiate a TSQLRestServerDB ideal for that tenant at runtime, if not he does not even exist in the other service.
The question I asked earlier is whether I would be making this architecture somewhat complicated when it is unnecessarily complicated?
If I am dealing with the tenant's isolation in the model, it would not be easier to develop or to maintain it later?


In this way:
TSQLHttpServer(this represents my business service)--->TSQLRestServerDB(here would have all tenants isolated by the model)

#22 mORMot 1 » Multi-tenant or single-tenant with mormot » 2021-03-11 13:00:07

fabiovip2019
Replies: 21

Hello everyone, come here to raise an old question of mine about architecture and I would like your opinion.
I use the micro services architecture for my applications.
Some time ago I opted to use mormot massively in my backend projects. At this time, under the influence of the programmer, we chose to use multi-tenant applications with a single tenant database.
In mormot I can implement it as follows. Each tenant of mine is a root of my interface server:
server / tenant1
server / tenant2
server / tenant3

Very well, this architecture works very well, but I started to question myself when I needed to make communications between one micro service and another.
I explain, some of my services make it necessary at runtime to create a new tenant. As I use a database per service, this becomes a very complicated task. I'm using mormot's callback structure to communicate between services.
This led me to wonder if a multi-tenant application with a multi-tenant database would not be more suitable in the mormot infrastructure. Does anyone have any opinion formed on this?

#23 Re: mORMot 1 » Output variables » 2021-01-14 18:19:58

Thanks macfly,

Thanks, ResultAsJSONObjectWithoutResult was really missing.

#24 mORMot 1 » Output variables » 2021-01-14 15:16:27

fabiovip2019
Replies: 3

Hello everyone, after I updated the mormot I noticed a difference in interface-based services. In my applications I always used a procedure with two output variables. A Result call of the variant type, which I used to pass status (errors, success and messages) and another call Data, which I used to pass data to the user interface, which always results in a json like this:

 {
    "Result": {
        "Code": 0
    },
    "Data": {
        some dto object
    }
}

After the update it seems to me that the mormot no longer considers the second output variable and writes the json like this:

 {
    "result": [
        {
            "Code": 0
        },
        {
          some dto object
        }
    ]
}

Has anything been changed in this regard?

#25 Re: mORMot 1 » GetJSONValues error » 2021-01-08 19:55:21

I'm using fDaemon.Rest.Update (). The strange thing is that the two fields that I change in this update are not the one that contains the html content. I am using a structure similar to the dddInfraEmailer examples to send emails.

#26 Re: mORMot 1 » GetJSONValues error » 2021-01-08 19:37:51

Hi macfly, exactly if I can remove the UIDCotacao parameters and the token goes normally. I already did the test also keeping the line or the complete href and decreasing the size of the html. Also without errors.

#27 Re: mORMot 1 » GetJSONValues error » 2021-01-08 19:06:28

Hi Ab, thanks for the reply. I changed it to RawUTF8 and the error persists. I'm using sqlite to persist the value of this field. If I have to put the html too big it gives the same problem. Is there any text size limitation for sqlite? do I need to use some kind of compression? The strange thing is that I already recorded json much larger than this html in a RawUTF8 field and I had no problems. I forgot to comment in the previous post, persistence occurs in a DaemonProcess, I created a structure similar to what you have in dddInfraEmailer to send emails, this field content is the body of the email.

I tried to use it as the original example also with MessageCompressed: TByteDynArray and if it is this very large html in the exception body

#28 mORMot 1 » GetJSONValues error » 2021-01-08 15:08:21

fabiovip2019
Replies: 6

Hello everyone, I have a problem with access violation in serializing a field of a TSQLRecord that has HTML content. The error happens in the TSQLRest.Update event in the JSONValues line: = Value.GetJSONValues (true, false, FieldBits); I'll post below the content I'm having problems with. Has anyone experienced this problem?

 <div style="box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2);width: 25%;
padding: 16px;background-color: #f1f1f1;">
    <table width="100%" cellspacing="0" cellpadding="0">
        <tr>
            <td style="text-align: center;vertical-align: middle; font-family: Helvetica, Arial, 
            sans-serif;font-weight:bold;font-size: 24px;">
                  Purchase Quotation Nº 8</td>
        </tr>
        <tr>
            <td style="font-family: Helvetica, Arial, 
            sans-serif;font-size: 14px; padding:0  0 10px">                
                EMPRESA FICTICIA 1 has sent you a price quote and is waiting for a response. </td>
        </tr>
        <tr>
            <td>
                <table cellspacing="0" cellpadding="0">
                    <tr>
                        <td style="border-radius: 2px;" bgcolor="#0000FF">
                            <a href="http://suprastock-dev.vipsistemas.com.br?UIDCotacao=3450832272354115587&token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOjMzODA3MzY0ODgxMjg5MDUyMTcsImlzcyI6InRocmVhZHVzZXIxQGVtcHJlc2EuY29tLmJyIiwiZXhwIjoxNjA2OTIwNzAzfQ.I2Kksyo9AwFILccQ9jrsLO385cN3AqLbn_j1cbD-vGY"
                                target="_blank" style="padding: 8px 12px; border: 1px solid 
                                #2936ed;border-radius: 2px;font-family: Helvetica, Arial, 
                                sans-serif;font-size: 14px; color: 
                                #ffffff;text-decoration: none;font-weight:bold;display: inline-block;">
                                Responder Cotação
                            </a>
                        </td>
                    </tr>
                </table>
            </td>
        </tr>
    </table>
</div>

If I do not pass the value of the UIDCotacao and token parameters into the html the error does not happen. I even thought about string length. I am using a Variant field.

#29 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-25 19:29:49

Oi @ mdbs99, the ideal would be to let the tenants' servers do this management. But callback listeners do not connect directly to these servers, they pass through the gateway. Only he knows which tenant server to request.

#30 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-25 17:44:58

Yes Ab, but if I am going to answer every callback that is on the gateway server, it will send responses to tenants who do not expect this answer.

#31 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-25 14:28:51

Ok Ab, thanks for the clarification, I used a record array that contains a list of callbacks and their UIDs. It worked at first I still need to test in thread. Is this architecture that I put in place valid? Sometimes I think I could solve everything with a single server.

#32 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-25 13:05:04

It is possible to ab. I see that my architecture may have a flaw. Let me see if I can explain it to you. My public server TSQLHttpServer has a TSQLRestServerFullMemory. He is a client of another protected Private server. which has another TSQLHttpServer with several TSQLRestServerDB (each one is a tenant). On this first server I have a route resolver. that connects me as a client on the second server in a desired tenant (TSQLRestServerDB). Confusing this architecture? I understood that callback responds to TSQLRestServer but my architecture is a little different. But I am subject to opinions.

#33 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-25 12:05:07

Hi Ab, it is because my TSQLRestServer works as a gateway. is a TSQLRestServer for several TSQLRestServerDB on another server, and each TSQLRestServerDB is a tenant. I cannot answer calls to all tenants through a callback array. Senao will have a tenant receiving a response from another tenant. And that is not desirable in my architecture.

#34 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-24 19:50:40

How can I distinguish the correct callback in this case?
I created something like:

 TCallbackConnection= packed record
    UIDReg:Int64;
    ListCallback:array of IInvokable;
  end; 

Do you think it would work to control callbacks for different tenants?

I pass this UID and the callback instantiates in my subscribe method.

#35 Re: mORMot 1 » Multi-tenant callbacks » 2020-11-24 18:39:14

Hi ab, I don't know if I expressed myself well, I'll try to describe my architecture:

- (Server 1) I have a TSQLHttpServer that works as a gateway. This is working on port 8888 right.
- (Server 2) this server is a client of domain servers via interface. Then on another server I have the following architecture working on port 8889.:
TSQLHttpServer.Create(GetPort,[FServerTenent1,FServerTenent2,FServerTenent3,
   FServerTenent4]);

So with each request that on server 1 I know which client to instantiate from server 2 because I receive information that distinguishes the servers in the jwt key.
Any and all requests are made by the user on server 1 and not on serverv 2.

Now I'm thinking how to implement a callback server on server 1 and I need to distinguish one client from another on server 2. If I go through a simple array of callbacks, all my connected tenants will receive responses, and this cannot happen. I must propagate messages differentiating one tenant from the other.

I thought about using a record array to control this. Or am I thinking too wrong about it?

#36 mORMot 1 » Multi-tenant callbacks » 2020-11-24 17:32:49

fabiovip2019
Replies: 14

Hello everyone, I would like an opinion from the community. I have the following architecture, a domain layer using interfaces with several hosted tenants using the mormot's ability to define multiple servers in a single connection. This layer is protected. And I have a public layer, also using interfaces, this layer is a client of the domain layer. However, I use a single TSQLHttpServer to communicate with all tenants in the domain layer. For this I use information contained in the jwt token. Well, everything works fine until I now need to work with callbacks. Does anyone have an idea of how to implement this type of architecture?
I cannot implement this in my domain layer because it is protected and not published. However, I need to distinguish between a callback and another in my public layer because it is a client of several mormot servers. I don't know if I explained it well, otherwise I can pass passages of codes to complement the explanation.

#37 Re: mORMot 1 » Renewal of JWT Token » 2020-09-24 19:52:24

Thanks Ab, it clarified a lot. Thanks to everyone who responded, I will proceed with some .net client-side resolutions now.

#38 Re: mORMot 1 » Renewal of JWT Token » 2020-09-24 13:02:30

Hi Ab, I don't know if I understood the use of CryptDataForCurrentUser for sure. I send the token to the Asp.Net client through a correct Login URI. My ASP.NET client uses this jwt token in the next requests until its token expires. Where would the use of CryptDataForCurrentUser come in?

#39 Re: mORMot 1 » Renewal of JWT Token » 2020-09-23 19:57:56

Okay, what about an expired token? What to do?

#40 Re: mORMot 1 » Renewal of JWT Token » 2020-09-23 18:09:51

Ok, in case of a complete authentication error check do I perform a new authentication? For that I would need to store username and password locally, wouldn't that be a breach of security?

#41 Re: mORMot 1 » Renewal of JWT Token » 2020-09-23 13:35:09

Hi Vitaly, thanks for the reply, I understand your suggestion, but my client is not a TSQLHttpClient but an Asp.net client. How do you think this token renewal policy would work in this scenario?

#42 mORMot 1 » Renewal of JWT Token » 2020-09-22 20:26:55

fabiovip2019
Replies: 20

Hello everyone, I would like to know if anyone has implemented any way to renew jwt token when it expires?

#43 Re: mORMot 1 » Serialization of abstraction » 2020-09-21 12:12:26

Hi Ab, it's true, I didn't think this before, sad. A simple free on FDocs solved the problem. Thank you very much Ab and MacFly. a lot of it. I found it a bit complicated to keep this serialization with abstraction, is there a better way?

#44 Re: mORMot 1 » Serialization of abstraction » 2020-09-18 19:36:20

Yes TPerson is TSynAutoCreateFields he is unable to destroy the abstraction of the docs property after I read the json.

#45 Re: mORMot 1 » Serialization of abstraction » 2020-09-18 17:36:00

Hi Macfly, this field exists, I just omitted it because I don't consider this class more fields like name, email, phone and one of them is the type. The TDocs abstraction classes also have more properties. I just omitted it for the example. But really Macfly I need to be testing the type whenever I need to recover this class, but my problem is being serialization. I managed to serialize the abstraction using TJSONSerializer.RegisterCustomSerializer and it looks like this:

class function TPerson.DocsClassReader(const aValue: TObject;
  aFrom: PUTF8Char; var aValid: Boolean; aOptions: TJSONToObjectOptions
  ): PUTF8Char;
var V: TPerson absolute aValue;
    Values: array[0..4] of TValuePUTF8Char;
begin
  result := JSONDecode(aFrom,[
  'Name',
  'TypeDocs',
  'Docs'
  ],@Values);
  aValid := (result<>nil);
  if aValid then begin
    V.FName := Values[0].ToUTF8;
    v.FTypeDocs:= TTypeDocs( Values[1].ToInteger);
    case V.FTypeDocs of
     tpPF:begin
     V.FDocs:= TDocsPF.Create; //here is the problem there is a memory leak
     ObjectLoadJSON( V.FDocs,Values[2].ToUTF8);
     end;
     tpPJ:begin
     V.FDocs:= TDocsPJ.Create;
     objectLoadJSON(V.FDocs,Values[2].ToUTF8);
     end;
    end; 
   

  end;       

#46 mORMot 1 » Serialization of abstraction » 2020-09-18 12:24:51

fabiovip2019
Replies: 6

Hi Ab,
I have a problem to serialize an object that has an abstraction, Is there any way to do it? I'll post the object below for you to understand.

 TPerson= class(TAbstractPerson)
 protected
           FDocs: TDocs;
    published
         property Docs:TDocs Read FDocs;
  end;   

TDocs= class Abstract(TSynAutoCreateFields)
  end;

TDocsPF = class(TDocs)
  private
    FCPF: TCPF;
  public
  published
    property CPF: TCPF read FCPF write FCPF;
  end;  

TDocsPJ = class(TDocs)
  private
    FCNPJF: TCNPJ;
  public
  published
    property CPNJ: TCNPJ read FCNPJFwrite FCNPJF;
  end;                                                                     

is it possible to serialize this docs property of the TPerson object?
I thought about being a variant, the problem with the variant is that I can't identify the type of the instance afterwards. I don't know if I made myself clear

#47 Re: mORMot 1 » MongoDB authentication » 2020-08-26 12:14:04

It doesn't work, I always rely on the examples to start implementing with mormot. I create the user by the same mormot, everything goes ok, so much so that when I connect with mongo compass for that created user it works.Is it something in my sources?

#48 mORMot 1 » MongoDB authentication » 2020-08-25 18:24:15

fabiovip2019
Replies: 2

Hi Ab, I'm trying to work with authentication using mongodb 3.6. I created the users normally, however when he executes GetCursor (Request: TMongoRequest; var Result: TMongoReplyCursor) to try to read my Collections the event returns Query failure. Have you seen this?

#49 Re: mORMot 1 » Sending email with TDDDEmailerDaemon » 2020-08-20 14:15:01

Cool Ab,
can i then use TSQLRestServer.ServiceContainer.InjectResolver to resolve this as an internal service? Would you like to call this implementation just by solving its interface, because its construction is complicated, or is it better to solve it with a dedicated constructor? It would be an internal service, I don't need to expose it as rest.

#50 Re: mORMot 1 » Use of the mediator with mormot » 2020-08-18 20:04:02

This ok is exactly what I'm doing, my application layer is a link to the domains, to perform aggregate conversion for Dtos I'm using something like pattern assembler for these conversions. So I'm doing the truck back from the household to Assembler, doesn't it sound strange to you?
I would like to congratulate you for the Excellent framework.

Board footer

Powered by FluxBB