ABP Community Talks 2021.12

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hello hi hi everybody i think we are live right okay yeah we have hello welcome galip parker it's time we can go upper you are muted okay sorry i hi everyone again welcome to the abp community talks the very first meeting i'm alper from the abp development team and today we will talk about brand new stuff at abp 5. we are excited to give some insights about the abp framework and tell you about what we are up to this is our first online meetup and if we get enough attraction we are planning to move this on with the next episodes we are planning the session to make it for one and half hour and i hope you will enjoy it so well uh as some of you may know we have just released abp version 5 which comes with great features with net 6 angular 12 and bootstrap 5. so if you haven't installed it you can install the latest stable version and check out the blog post at blog abpio here you can see the how to install the abp cli how to create a new project from abpio get started page or via the cli tool and you can check this out and let us know what you think in the comments we will try to answer your questions at the end of the sessions and today it's our agenda we are going to cover seven topics and each session will be presented by a different member of the team first we will start with outbox inbox patterns as you know outbox inbox pattern solves the transactional event publishing problem for distributed systems highly will explain this pattern to you in detail and show how we solved it in abp with an example scenario and ahmed will talk about abp static c-sharp and javascript proxies then met from the angular team will tell us the new angular ui changes and names after that garlic and innis will describe you what's the eshop on abp later on binyamin from the abp angular team will mention you about our knee beam laptops and then lastly i will explain you some of the important breaking changes with abp 5 and how you can migrate to the latest version and i will share you some community links and news about us uh we will start with ali yes i need you can show us this cool pattern okay just one minute okay hello everybody i see a lot of people from different countries welcome everybody uh in this session i will talk about uh the new any abp feature that comes with abp 5.0 that's used to publish distributed events in a transactional manner that that was one of the most requested features uh and it was not available in abp now it works out of the box and i will explain the feature first uh then i will show a quick demo to you if i have time i will also write some live code uh so let's start from the problem for those who don't know or who are not aware of this problem okay first of all think think i'm a thought like that you are you are performing a database operation on a sql server database for example in a relational database that supports database transactions then you publish a distributed event to rubytempu which is a different system then you you're performing another database operation then another event publishing so uh the problem is that it's hard to make all this transactional that means for example if you uh if you begin a database transaction before all the operations and commit this database transactions your database operation one and two become transactional that's easy but the events are not included that transaction so that means for example if you fail in database operation one no problem if you fail in uh fail while publishing the event one then no problem because it won't be published and the database operation will be rolled back because you are in a database transaction but if you fail with the database operation tool then the event has already been published that is there is no easy way to roll back this event or uh you you may create a scenario to roll with the operation from the event pause but it's not easy and straightforward so if you fail in database if you for example all the operations succeed and you can also get error while committing your database transaction so two of the events will be published so you may have a system with an inconsistent state one solution uh one partial solution can be performing all database operations first then just before committing database transaction you may publish events altogether that may partially solve the problem but you you can still have the problem if you cannot publish event 2 or you can if you have an another file database transaction commit [Music] so uh the solution one solution of to to this problem is using the outbox pattern in this pattern you just perform your database operations then you have a database table you have a table in the database to save events ongoing events and you commit the transaction in this case no uh event published yet then you have a background worker it reads the events ongoing events then publishes to the event pass separately in a background worker and if it fails it retries and so on so this is called outbox pattern and now available in the avp framework is a wilson feature so if i want to visualize the problem or the solution here uh assume that microservice a is working with its own database on local database and microservice b is has a separate database uh to work with its own application data then you want to publish an event that is consumed by microservices b so here abp eventbus takes the event then sends the met to the message broker and listens to the to that event and executes your handler in the microservice b and here the new outbox and inbox pattern we have also implemented the inbox button i will mention that for outbox whenever you if you enable this outbox uh implementation the event is actually saved into the database in the same transaction then sent to the message broker via distributed via background workers and also avp handles reconnecting if the message broker goes down or there's a network problem it can retry and it also supports distributed locking which is used for example if you have multiple instances of microservice a uh in a clustered environment for example in a container you scale to your application for example to instance or 10 instance all this instance will try to send out box messages the distributed plugin ensures that only one instance of your application work with the outbox stable in a time so it solves the concurrency problem in the receiver side avp doesn't immediately execute the hunter if you enable the inbox option it saves a message first to the database and in a background worker it executes your event handlers one by one this also ensures that the message is only executed one time because a message broker sometimes may deliver the same message two times or maybe more than two times because it may not get the acknowledgement message and it may require the message and you may accidentally execute the message more than one time inbox pattern ensures that it's executed only one time so uh this pattern in brief solves all the the transaction problem for distributed events so i will show a demo first first of all i will disable this new features and we will see the problem and then i will enable the new features with avp5 then you will see that problems are solved i have prepared two console applications to make easily demonstrated i have a publisher application a subscriber application the publisher application just publishes a message an event to the message query then subscriber handles that event and shows on the console window so we will see that the message is transferred from the application publisher application to the subscriber application we have also maybe it's small you cannot see but it's not so important there is a shared library that contains the event classes i will show the code but first i will just run the demo i am first running the subscriber application actually i can just run without debugging okay the this application lists the messages and the publisher application [Music] in this demo i will place an order with a product called an amount and the subscriber application received an event related to that order for example i am entering a product code a01 then an amount i can make it even bigger like 2 you see that the order placed event is received by the subscriber application i'm just placing a new order with an amount of three and you see that subscriber application is constantly receiving the events and writing on the console window and i have a database with an orders table when i place an order it's saved into the database let me execute it and i see that two rows in the database with the values i have entered okay no problem here but i have a business rule if i i can see the code i have i have a code to demonstrate the problem if the amount is greater than five i'm just throwing an exception after placing the order and publishing the event uh as as the last operation i'm just throwing an exception so let's see what happens okay entering and product code and amount of seven okay just enter the place the order you see that i have an exception here uh because it's greater than five the amount but even if i i have an exception the place order places event is published and the receiver application just received that event and execute the handler there's a problem because actually the order is not saved in the database let's check the database and you will see i have still two rows because order is not committed uh because the transaction is rolled back when i draw the exception okay let's see the source codes then i will enable the new avp features and you will see that the problem is solved this code is very simple it's a just console application i am entering a product code then i am entering an amount then i am getting the data from the product service then creating an order and inserting to the repository that saves the order to the database but remember that there is a transaction here it's a unit of work that means uh if i throw an exception here the transaction is rolled back so then after placing order to the database i'm just publishing an uh event that event is order placed i'm setting some parameters then i'm throwing an exception based on the condition so if the amount is greater than five this exception is thrown and the database operation is rolled back but the event publishing is cannot be rolled back because it's another system and rubytemp2 already received the event so uh how to fix that actually it's fixed by default with the avp framework but i especially disabled these new features when whenever i publish an event i can specify two parameters the first one says that normally all events in the unit of work are published just before the unit of work complete that means wherever you publish the event the event publish operation is done after all the database operations just before the transaction com so if i enable this which is default uh enabled by default uh then the problem is solved let's see that [Music] closing the applications [Music] okay i'm re-running the subscriber application see that i didn't enable you outbox yet i will talk about that now i am running the subscribe publisher application okay here i enabled that avp publishes events at the end of unit opera that means after all the database operation completes and also after that exception is strong that means this exception uh when the exception is strong uh done then the event has not been published yet let's see placing a product entering an amount no problem it's placed because it's lower than six entering another uh order with eight now i'm getting an exception cannot place order more than five products you see that the subscriber hasn't received the event because it's not published even if i published it before the exception it's not published because abp with the abp 5 publishes all the events at the end of unit offer okay that's fine but it actually didn't use the outbox yet if i disable this line then it uses the outputs by default let's see how it works okay closing the applications [Music] and write the application again [Music] okay right side is the subscriber the left hand side is the publisher application i'm just publishing [Music] a new order with amount of three you will see a slightly delay here uh because the event is saved in the outbox table and background backgroundwork is periodically checking the database and maybe up to one second it may delight the event publishing so you see that there is a log message here found one event in the outbox and sending this out box from the background worker i'm placing another order [Music] with amount 5 you see that there is a small delay and i am entering another uh order with okay with eight amount i see that there is an exception here and the receiver side hasn't received the event and that's all that work as expected when you check that when i check the database in the all there is a outbox table this is where events are stored until they are published to even uh bus you see that it's empty now because avp has published all the events and deleted from the queen we have also an eventbox inbox table but it's it's actually not used for this example let me check if i have time okay uh helper i also want to demonstrate a live coding to show usage of the inbox system i i think we have time yeah we have time and you can go on okay uh you have already seen the order service that's just the console application that is publishing events and let me show how these patterns are enabled this is the publisher site and we have a shared folder which holds the uh order places eq that's event transfer object just my naming convention there are some properties here and also the subscriber application has a event hunter that's a distributed event hunter of order places etio that racks all the information to the console this uh that's worked and we already have seen the output and also if i check the anti-framework db context i see that two interfaces are implemented i has event inbox and i has event outbox so so for every unique database we should have these tables because we can only ensure that a single database can handle the transaction so for my own db context i have two db set here i have defined that's come from this interfaces and i configured the database mappings uh then abp created the tables uh actually the database migration system create these tables for for me like avp eventbox event inbox and avp event outbox let me write a live demo for you it will be easy but you can understand the power of abp's event box event pass system from this example first of all i want to create okay okay i have an order what i want to do is that whenever i receive this event i want to publish another event that is received by the publisher application that means uh first i am publishing events from the publisher to subscriber then subscriber publishes another event that's received by the first application so two applications will communicate in this way that's very easy first of all i need to inject i distributed event pass [Music] okay now i want to publish an event awaits distributive plus publish new for example this event's name can be received order e2 what was the order please receive it or the return that's not so problem that's not so important and i want to set a product name property visual studio completes it okay i don't have this class yet i load the to create it i'm moving this to the shared project because the same event transfer object should be shared between the receiver and the sender uh okay we have a product name that's all the class should be public so we can access from other libraries uh publishing an event is that simple let's see the receiver site uh let's create an event hunter sorry [Music] i want to create a new class here what was the name received even received order okay let's see order [Music] it should be it should implement the distributed event hunter of received receiver order eto it can be transient dependency to register to the dependency injection this interface forces us to create a hunter method [Music] and i can just write them console message received order with product name that's very easy i just created a shared class which is published by an application and handled by the the second application let me demonstrate it i'm just running the subscriber what are the arrows i think the applications are already running and hot reloads have problems okay close up the applications [Music] okay subscriber runs and i run the publisher [Music] okay placing an order with amount of three you see that event is sent to the message broker and second application received message it already it also published a new message you see that process of the incoming event so this application uses the inbox pattern so this is written by the background worker so i'm i can see the message written to the console application the last one i want to show is the inbox table now i can see that there is a one row in the inbox table because we have received the event uh from other application i can see the event name here and event data it's a binary object no problem uh we don't need to see that and the click that indicates that the event is processed so it is not deleted immediately from the inbox table the reason is that the same event can be sent by the message broker again so we we are eliminating duplicated uh events here after a few hours i i'm not sure about the configuration it may be one hour the message is automatically deleted from the background worker so it remains for a while for the for eliminating the applications uh my uh presentation it was like that it can be a little bit complicated for a community to talk uh sorry for that why i want to show the this cool new feature of the avp file opera you can continue i am taking your thank you thank you ali for the great explanation and i'm i'm going through uh the comments uh i see that we have many audience from different countries uh hi to michael murphy to usa wisconsin hi to south africa denver i know some of you from support website from stackoverflow or from the github and uh hi igor to canada uh also corey i also know you from i think support website and hi to pakistan um hello to germany uh hi to california ciao italy danilo and hello uh mikhail from belgium part one hoy from germany uh simpson from sweden team maki i also know you i think tim from san diego the usa propriet high sweden florida chile south africa dennis from ankara and who else roberto from italy jeff from california yeah it doesn't end so let's switch to the next session and ahmed will introduce you the static c-sharp and javascript proxies um now let's have your say helmet yes you are live now yeah hello hello everyone hello around the world all uh watcher it's really nice to be here to present a new feature to all of all of you and uh my topic is static generated client proxies for c-sharp and javascript let's start the actually hold the topic on the client and back-end communication almost all client application uh required to consume uh some apis from their own code and to achieve that we are using ajax and http client and monoplating or request there's so many verbs but abp um there is a feature in avp it's a dynamic c-sharp and javascript pro system it actually solves the problem uh with the system we are able to consume http yes without any problem we are just uh using the uh existing solution uh created codes but sometimes we need to create the static proxies static codes and and we added this feature in this version to abp so there are some differences between dynamic and static proxies first static client proxy generation adding uh adding some performance advance advantage to your uh application and also the client doesn't need to obtain the http api definition on runtime because it's already created and also it's easier to consume service behind an api and but it's also has a website when you update your api you need to regenerate your proxies again and again i want to show you how to convert your mvc and blazer application from dynamic proxies to static proxies uh with or sample application called easy theorem maybe some of the listener what you already know that is a theorem it's a or example application sample application published by commercial abp uh there are some business logic etc uh related with a crm i just want to start our web application let's wait [Music] uh there's a two actually there is a two for easy theorem one is the or whole backend and mvc application here and one is for a blazer user interface i will run the blazer user interface also but i just want to show you the mvc application yes here uh or ms application uh starts work let me check yep great so let me run the blazer application also yeah it's all the same application but in different ui [Music] yep let me uh open my developer console so normally this application uses the dynamic c-sharp and javascript proxies so let me show those things for example this mvc application abp automatically creates all the uh javascript proxies at the back end and if you navigate if you search on your network service process script you can see the generated code actually on the runtime so as you see there is so many generated javascript code and it helps us to communicate with to the back end easily for example i have countries and i have countries app service controls also i i did not do i did not code any javascript code write any javascript code and i am able to use my for example you see there is a created javascript and i am easily getting a communicating backend with auto generated code okay country and get list then let me put the response to the console when i run that uh the uh javascript codes called the backend creates a request to the backend via ajax and uh it consumed the assuming can yeah i actually i did not use any ajax code i just used already created javascript proxy and actually it's my best feature in avp it makes easy to coding so it's the same thing also using for blazer and let me show the auto-generated uh client proxies and for the blazer it uses the endpoint abps slash api definition when i see the response response you see there's so many definition and those are generated dynamically so we want to convert we want we are actually we added a new um another approach um alternative way uh they are creating on the runtime so let's create it at the development time and don't create them on the runtime we just want to achieve that so we we have added a new comment to abp cli let me generate for the first for the blazer side okay here a trailer okay let me open my folder yeah so before the creating the static proxies i want to prove i want to close or deactivate dynamic uh proxy generation for blazer in my application i'm navigate i'm going to http api client project and in in this project there's a chinese yep of course sorry i'm always forgetting to zoom in no problem zoom yeah i think it's yeah in the cleric application there is small configuration and ac context services at http client process what it does it's actually adding the uh dynamic proxies for your chart.net applications so i just want to remove replace it with the add http static http client process when i do that and now after that abp will not generate the proxies on the runtime so let me stop the blazer application my backhand is still actually working and i am rerunning my blazer and you will see we will see the blazer application will crash the request will not go to the back end because we removed the automatic the g code generation for the exact box okay exactly as you see it's already thrown some errors we couldn't find some app services etc i can't use uh anymore so let's add the statically generated proxies i'm stopping my blazer application to add the static proxies my back-end application must be running so my back-end application web application is already running and i am navigating to http api client a project directory then can you zoom in yep i will then i will uh writing abp then generate proxy i'm defining type which type of i want to which type of prox i want to generate type is c sharp and the u is my backend url for this example my backend url is localhost 44228 so when i run that as you see there are some responses in this the terminal and let's check the http client oh sorry i generated in the wrong wrong place uh it it place it in the blazer application okay it's not a problem i will just a little yeah i will delete that okay let's open the um http length directory i'm opening with terminal and i am running same comment sorry yeah clear it i'm running the same comment at my http client directory project directory yep uh let's check yeah as you see here uh abp cli created the folder called client proxies and it put all the generated code in under that folder you uh you can see what is the for example let's check the countries yeah country client proxy yeah you can see all the generated can you zoom in of course yeah okay what do you mean that this this code is generated from the avp cli if you use dynamic proxies this is generated on runtime yeah yeah it is now statically generated in the development time yes then we will use the generated code on for our application when i run my blazer application all the generated call will be used it won't consume again the or backend api to generate those things again on runtime let me prove it yeah you run it and i i give an additional info uh avp first request make a request to the server side to get information about the services it's like a service discovery to be able to generate dynamic proxies with the static proxy approach this is not needed uh because the service information is obtained in the development exactly and i'm waiting my application to be run yeah it's coming this is another error when i check my api definition it's still waiting yeah i think we have another error it's happened sometimes uh let me check what's going on uh i think i need maybe it's not build it let me stop okay yep i'm running my back-end application one more time okay my backhand is up i think move to blazer yeah right click and wheels before running okay anyway it should build interesting let me build it you cannot use while running the yeah let's stop the weapon project also it's building the blazer yeah i think it's build it and let me run web application again yes sometimes it happens actually i tried it yeah like the risky t also after the blazer application i will demonstrate the static api proxy generations for the mvc site yep yeah yeah it's build it properly and we are able to use the static generated c-sharp proxies now let me go to the crm side everything works and i want to check again the api definition you see it's there's nothing because it's not generated yeah it's not generated on the runtime and it's not requested so it's for the blazer let's generate the javascript code for the mvc application and this is my uh mvc application my backend also i will do same thing before to do that actually let's uh stop the auto generating javascript process a web i'm closing my web application and to do to achieve that i'm going my a web module on the configure services phase i will add a small configuration here and you can automatically yeah with that small configuration we are closing we are disabling the dynamic javascript proxy generation for our application that means uh it won't generate any code and when i want the web application my application will crash because there's no code yes login yeah when i navigate the countries nothing happens because let's check the service proxy secret api also and as you see the previously it was it's generated the easy theorem related proxies are not here because we disabled them so let's generate the or proxies manually i'm navigating to my web application web project directory and here i'm opening terminal so yeah i'm using exact same command but with here i'm typing the gs for javascript because i'm generating for the muc application and it uses same backend when i run the command abp cli will generate all javascript proxies and at the under the www root folder yeah here we can see we can see the under the client proxies folder and app procedures under the www so all the related code are generated so how we can use it we can manually add it to the for example countries index page here i can add that as with the avp script let me close it yep client proxies and app procedures so after that ab we will not regenerate or process and we'll use the static javascript code let me navigate the countries yeah everything works and in the countries page i am able to use again my generated codes as you can see here everything stays here and it's not comes from the service process script you see the response is so small but you can see here the f proxy loaded via just static as a static file so that's all for my presentation thank you thank you and for a quick question uh dawn fox is asking is easy sierra has been updated to five nuts yeah it's updated to 5.0 version but my my project is not it's it's using the release candidate version we will uh we will update it to this table and we'll share the our community okay thank you so as a reminder we will take your questions at the end so if you ask your questions at the end they won't get lost in the middle [Music] the next session will be angular ui changes i thank you the the next session is about angular ui changes and neves as you know angular 12 is there uh we have updated our templates to angular 12 while the angular has its own enhancements we also improved our angular ui templates mehmet will introduce you the new things about angular changes so mehmet we are listening to you hi everybody i'm i'm ahmed from the abp angular ui team uh today i'm gonna talk about angular change in the abp version five first of all i want to mention the angular 12 update abp angular ui startup templates have been upgraded to the angular 12 you need to update your project to angular 12 updating is usually very easy angular team has created a guide called angular update guide which contains each version update information you will probably probably run an ng update comment and that's all your project will be upgraded to angular 12 [Music] okay next we started to compile the angular ui libraries with ivy so with the iu compilation angular compatibility compiler i mean ngcc will not come compile our packages i mean when you install the modules the ngcc needs to compile the installed packages but ngcc does not compile the installed pac but ngcc does not compile the packages which are compiled with the io so this change will speed up the ngcc process uh angular was using view engine before the iv with the angular 12 viv engine support has been deprecated we've engine i'm sorry v8 support will be removed in the future unfortunately we couldn't up upgrade to the angular 13 during version 5 milestone there are some braking issues with angular 13 on the end of the dependent letters like indie bootstrap we are waiting for next versions of the angular and the other dependent libraries to support angular 13. the second feature is bootstrap 5 we updated bootstrap to version 5 and updated ng bootstrap package there are some braking chain chains due to this update i'll talk about these in the next slides previously bootstrap did not officially support right left we were used an external css file to provide rtr support as of version 5 we have removed the external css file and imported the official artill css files from the bootstrap npm package okay new proxy secondary entry points uh let me explain second let me explain the second round points uh besides the primary entry point a package can contain one or more second rental points for example angular slash core is a primary entry point angular slash course knife testing is a second entry point we have added new proxy entry points to some angular ui packages before the version 5 we placed a modules process the primary entry point of relevant module as of version 5 we moved the proxies to relevant modules proc center point with this change you can import a service from the new entry point actually we aimed to better developer experience and keep your bundle size small let me explain the bundle size issue and then you import something from the primary entry point of a laser package the bundle size may increase so much well next notable feature is ui localizations localizations can now be defined on the ui site let's watch the video and see how it can be done i have a localization key in this sample i placed that key to the home component i want to local localize that just go to that module file and pass your localizations to the full root of the core module can you zoom in that's right i'm sorry i can't i think i can okay and it's very simple okay breaking chains i said that angular packages started to compile with ivy that's why you need to update your project to angular 12. abp angulari is not compatible with angular 13 x due to some issues it will probably be supported in the version 5.1 there are some braking changes due to boost update you can check the booster 5 offshore migration guide and our migration guide there was booster parking css file into the angular ui team shared package as of version 5 this file has removed you have to change a style file in the angular json file next ng-access has been removed all states actions etc we aim to make the angular ui free of any state management solutions abp developers should be able to use the abp framework with any library or framework of their choice so that's why we decided to remove ndxs from the avp packages if you want to use the ndxs after upgrading to version 5. you should install the ngxs npm package or if you don't don't want to use it you can remove all ng accessing ports from your project uh before the angular slash local localized package is a dependency of the angular ui call package as of version 5 it has been removed from the core dependencies so this package must be installed in your app i mentioned the new secondary entry points generated entry points before the version 5 have moved to relevant packages procs entry point so for example if you import ident user service from primary entry point of the identity package you need to import your you need to update your import path uh i suggest you take a look at the angular ui migration guide you will find more details there thank you for listening that's what i think thank you i from the chat i see uh some of you are asking how to get the t-shirt that's on me and we also have some other abp stuff like abp hats it's we also would like to deliver these to you uh we sometimes visit conferences and in that case we we give these swags um but as you know the pandemic situations uh we are not attending uh physically to the conferences now uh but we are thinking uh how to deliver these things to our community and if we find a suitable way we will [Music] give to abp funds so next we have eshop on abp as you know developing a microservice solution is hard we get many questions about the practices of developing a microservice project eshop and abp is a showcase on how to organize things with a microservice architected solution on top of avp in this session anis and kylip will explain you why they need to create a new micro service sample project so got it what's this eshop on abp hello everyone hello everyone from all around the world now we will be i will be giving you a small uh teaser trailer for eshop on abp and we will talk about what the eshop on abp about uh my friend and this will be helping to me as well so anyways let's talk about what is the ish upon abp and what's beneath this hello guy uh let's talk about what is the eshop on abp we are happy to introduce to you a new project named eshop on ebp i think most of you heard about issue point containers by microsoft it's a good uh example of developing how to develop a micro service solution and this is how we do in abp style uh it's a short uh short description in a short description and ex this it's an example to demonstrate how to build a micro server solution with power of abp framework uh let me show you some structure about a project we have services gateway and apps apps category then you can see we have only three uh public apps authentication server public website with mvc and angular application and you can see we have a gateways two of gateways and we have uh a couple of services which operates uh the main logic and has different database we use that in example uh application in here as well as in angular application right of course of course the mvc public website uh is for users end users but angular application is a dashboard it's like admin dashboard it's management dashboard it will be include management pages like product management stock management or order management we have two of uh application different than issue containers so it's a good solution but why people need to inter be interested in shop and avp guy what do you think yeah i think this was one of the most requested features from the community and that was a public demonstration of a microservice approach using abp for an end user application we had all piece and pieces around for building applications or modules but we need a really nice demonstration like each one doppler or ishaban contains in an abp style like we have mentioned so that's why we created this repository we want to demonstrate in an open source code to how to create this famous eshop application using the abp framework but not just only the abp framework we also be using the best practices of domain driven design where we can use abps many other features and we want this to be used as a guide so we can create documentation or guides so that people can look and move you will also notice uh that it's not exactly the same eshop sample we are adding something more like we have shown a back office application as a standout alone application also we also have a different solution structure and architecture we have our test applications layered applications great services we will also be using the module architecture so abp developers will be familiar with this module architecture and also it will be a nice guide for the new abp community members we will also demonstrate how we provide solutions to some of the microservice complexities such as inter-service communication using synchronized connections or async using eventbus also the complicated problem solution where ali showed us the inbox outpost pattern we will implement this and use in a business case we will also create business related custom topic custom repositories application layer domain services implementations test aggregate routes and patterns and one of the other most important piece the deployment that's what we want to also show so please advise us about which technologies we'll be using in this stage this is a good point because uh most of developers cares about which energy is used we can we can surely say that we are using all the modern technologies such as we are using abp templates to creating our projects modules and services and of course we are using ant framework to access data this is a good uh point angular and ident server as a application stack in the data layer we are using postgresql mongodb reads we are using uh those technologies to store data and uh we're using we use oscillating here as a gateway we will plan we are planning to introduce other gateway technologies but currently we are using ocelot also swigger and rabbit mq for inter service communication and deployment as gulp says will explain uh how we deploy that docker kubernetes and helm charts we are using for deployment we can sure say all the modern technologies is used are used in issue upon abp project but what about deployment we talked about yeah let's talk about deployment let's talk about deployment how would you plan that yeah deployment was a kind of of our soft spot in our supports especially when we are getting lots of questions about deployment errors we were not able to help fully because we had some missing pieces of knowledge in this field so we had to learn from scratch as well even if it's not completely in our focus but now we are getting better and better to help our community and we at this moment we have created two ways to create docker images for both locally and multi-stage this means if you want to create your docker images locally you need to have a sdk and you just run a powershell script and it will just one by one search and publish your application and just copy this for the docker files it will be very fast can i run it without docker in my local computer is there any easiest way yeah there's also a multi-stage docker file so where you don't need an sdk all the docker images will be just built in docker containers and this is more help this is more friendly for ci cd pipelines where you can just run it also we are supporting local kubernetes and we have also created hand charts for deployments so each application has one hand templates also it has a main hand template as well so you can either individually deploy any chart of any application or you can deploy the main chart and over using overriding any values so this will also help you about overriding environments and where you uh add your environments to your deployment and you can use you will be able to use as you wish this is all as i want to say about deployment but we can talk about what about the development solution like this we can inform us about this policiness yeah as helper says developing a microservice solution is really hard what how people can do that you can learn from our sample it's already open source in good github you can find it the link under our framework page abp framework slash eshop on avp also you can give us a star to make it more common you can clone our repository and review that and you can build your application on our demo but you need to change most of things but it's an option you can learn from our sample but is there any magical way to create a microservice solution or add a new services to your microsoft server solution yes we have it another way uh instead of creating applications one by one you can use our startup template but it's included in abp commercial right now uh our commercial users can use that template and they can add new services into their microsoft solution uh it's provided by uh commercial but you can access our issue in avp sample still in its open source uh roadmap service template can be created by using abp the suite and bot cli right yeah right you can use both of them you can use avp suite and you can use app both of them has the commands it's easy to build a microsoft solution with a commercial roadmap what is next what have we done yeah what we have done until now and what will we do next hey guys can you explain us what we did yeah we were mostly working and i was mostly working on the deployment scenarios and success you have also created business services and we started building our business logic now since we have already decided the infrastructural side so we also added the payment module payment service now we are working on basket cataloo and order services as a business services we are planning about management sites as well so as you remember we will have a back office application as an angular replication so there will be we are planning electronic slide implementation for that where you will just uh see the presentation of miami daptonix is coming so these are certainly our roadmap and this will get updated stay tuned and follow us on github we are back to you albert okay thank you guys uh for your time and next um we have the new laptop x session uh as you know we have been developing laptop theme uh since the first versions of abp and now we are excited to announce our new theme laptops munyamin from the abp angular team will tell us the new theme so we will have in right now what will you tell us about this new theme hello everyone thanks for the introduction of albert let's get started okay so today i will talk about the new laptops theme uh but before uh before doing that i want to talk about the existing team that you've been using for a long time laptop so what does laptop mean it the dictionary says that any of a family of elementary particles that participates in the weak interaction including the electron and its associated neutrino so it's basically subatomic particles and why did we choose this name because of the atomic design principles atomic design principles tells you that your your application should have a component smallest components possible like atoms and like inputs labels buttons i don't know like the smallest web elements that you can think of and when when you put this atom together atoms together you get molecules uh which converted in the organism templates and so on and with atomic design principles in mind we decided to name our project laptop and you you all know that laptop comes with pre-defined template predefined colors like these ones there's a there's a dark theme there's this light ones on the bottom like you can choose any of them you can start use these templates with your commercial templates but we lepton has never come to a point that we wanted to be so we decided to rewrite the entire project why did we do that let's talk about that so lepton has been only abp so you can use it with abp templates but not a standalone template yet let's say you have this project that's written in java or i don't know what something else and you want to use left on you can't really do that it's abp only and there's this the prime predefined themes i just showed you that are not used being used by many because these colors do not fit you i know that all of you work for different companies and this your company has has different branding colors uh requirements and those colors or shadows or borders i don't know whatever lepton has do not really fit your application and so that you need to overwrite these colors and borders and everything lepton provides but we know that it's hard to customize we have seen so many questions in the support forum that have to overwrite laptop of the change colors after i don't know write css for it and if you have the commercial license photo for be able to download source code you can use css files to overwrite laptop but it's still not that easy and it's kind of outdated so we want to a fresh start with a fresh design and we want to solve these problems so all right so this is the very first design that our lead designer armand showed us he said that we we won't have these so many predefined colors we will have only few dark as you can see right here light and semi-dark so with this layout we will have a side mirror as you always and a toolbar on the right side this is new we haven't done this in the in the past and so this is the new feature we are introducing right now so you as you can see there's a user menu right on the top right of the screen and there is there are some icons that will be related to content this being displayed on middle and on the right hand side on the bottom you can see there's this setting context menu that you can change the container with language or appearance whatever you want and you can you will you will be able to add your own settings on this section okay so we said let's start simple but what kind of things we will have we will have dark theme or semi-dark and light that's it that's the only color options we will have and so it's because everyone is using dark themes like you can use that dark theme in your browser mobile applications even operating system support these so these are the main themes that everyone is using these days so we want to support this but we want to also provide a team builder that you can build your own theme with let's say you want to change these colors you will be able to you should be able to do it do it really fast and easy without writing much code because we will value your time and developer time is the most valuable thing we have so we started these three themes dark in light this is the one aspect of laptops and then we said okay what was the first problem it was abp only so we want to provide plain good old html javascript css not no abp related just good old template you can download it edit it and integrate it into any technology you want but we didn't stop there we also said that we should provide this as an angular template just like the first one you should this is there is an angular project that is written with laptop pages components etc you can download it edit it and use it however you see fit but the problem with templates when you download the template and start editing it you kind of forking your own project so you're kind of moving away from the on original template even if there so there are if there are new versions new features or fixes it's kind of hard to upgrade your own template so we said okay we should provide this angular as a library so you can upgrade your template uh by just upgrading the version so there's this also another aspect that it's also being can be used as a library into an angular project and ui framework obviously we chose bootstrap but in the future we may add more i'm not saying we will we are still thinking about this but we want to be able to have a flexibility that it can be used with other ui frameworks so the the left this this part is independent from bootstrap so we can id either ideally we can switch booster with something else layout so we said that okay we there should be the side menu looks cool but not everyone is going to like that so we should be able to switch these layouts from one to another without changing the content so there's side menu menu and in the future there could be more okay as you can see all of things all of the things i have shown you have nothing to do with abp so how does abp users will benefit from these features obviously we write adapter packages for angular mvc and blazer okay great so if you are using abp framework and if you are doesn't matter which client you use you should be able to use laptop x just like you you've been using laptop okay what about licensing you may ask okay this is all these all of this sounds cool but obviously this is a commercial product so it's only it can be only be used by commercial users but but there's a bot coming old laptop there was one thing that old lepton has never been it has never been free so there is a light version for all of this that you can be able to download for free and use it in your open source templates just like uh garlic mentioned that the eshop on abp will use this light version so what does the light would include let's see that okay so it it will include only the dim or semi dark from theming it will provide these as well but a small well subset of these features not everything but most of most of the features provided here will be available with live version obviously framework for a bootstrap it's also a usb bootstrap and from layout it's gonna use side menu for now but in the future we may add more and all of the clients will have light versions as well so when you put all of these together and many more you get the new project laptops and this is our new logo great now i know that you you you you've been asking us that like how can we use it is there an mvc client how can we access the source code we want to download to source code we want to look at it uh user use it etc i know that you guys have been impatient but don't worry er it's almost here not quite but almost here so we are working on a beta version that will be released really soon so it will include all of these all of these box theming dark theme light and theme builder and the templates are not quite yet ready yet we are still there still some work to do on these templates but once it's ready you will be able to download it and use it and framework you will be able to use bootstrap obviously and there will be only side menu for with version one but we will work on the top menu right after we release the stable version and all of the clients will be available i know that some of you have wanted to use t laptop x with mvc but haven't been able to do so because we haven't released any version with nvc and blazer and pro and light versions it will be available soon right now actually we have released one alpha version with angular for abp 4 and bootstrap 4. so if you are using abp 4 and bootstrap 4 obviously you can download a and angular as a client choice you can download laptops and try it out with alpha version but all of these will be available with abp for abp 5 and bootstrap 5 with version 1.1 0.0 beta 1. okay let's look at a quick demo right let's see how it how it's it looks like just a really brief demo and we will move on first i want to show you code okay so let me zoom in okay is it good enough i think so right yes okay so i have created two projects with abp5 there's one commercial app and a free app uh you as i mentioned that it's a complete rewrite we have written it from scratch it started from blank project and we have written everything from scratch but that doesn't mean that you should the migration will be hard we also worked so hard that migration should be easy as as easy as possible let me let me show you how you can just download the package and do little configuration on angular json the file but the only thing that you really need to change is go to app module and if you are using open source template you should have a team basic module and just remove it excuse me import team laptops module and whatever layout you want to use in the previous version laptop you you were able to change the layout on the runtime but here we will we need you that we need you to decide on the layout you want to use on the development type and if you are using a resource owner password flow which means that if you are developing your login register and forgot password authentication pages on angular you need to import these this line as well so that's it that's the only thing you need to do to switch between laptop x just remove the old one and import new ones that's it let's and the commercial is just is the same and since i'm an angular guy i'm running this demo on angular but don't worry it works just the same with mvcn blazer it's just the same remove the theme laptop module for commercial and import the these three lines that's it let's see how it looks like so okay this is the light version as you may remember that the the the open source template didn't have a any theme or just it's team basics i mean it's not being it's not you can't really use it you need to implement your own team but left on slide it's pretty nice it's it comes it's the colors and looks it's really nice so you can use these laptops for your production as well and there's this little icon here if you click on it it will show in the menu and you need if you have a square logo it will come right here and if you hover over it and you need to be you can switch back on let's go to a page like roles uh so this is roll page and there's this new breadcrumb on the top and it shows that the same depth so there are roles and users right next to each other you can be you you are able to switch between them right here like you can like just think of it as a we know explorer right if you're navigating through folders you can click on this little thing here and now you can see other folders so we want to implement this new cool feature for laptop light and this is and let's look at the let me put this on the side and this is the mobile view of electronic slide it's pretty cool right it looks nice you can use this with your project even if you you can even use it in production you can you just need to change this logo and some colors and it's good to go let's look at the commercial app so this is the commercial app this is dark team and it has a one extra feature on this menu as i said that the light version will have less feature not with subset of uh features subset of features but there won't be a lot of differences that just slight differences to make it so that it makes sense to use the commercial product let's say i will write here and user and it filters the menu and there's this user menu right here and there's the settings on the bottom like you can change the semi-dark light or let's go back to semi-dark i like this one a lot and you can change this box layout full width you can change the language here it will refresh the page but let's change let's change it back to english and like right and if you can filter through menu and i want to show you one more thing with new laptops we want to have users with better mobile experience experience so all of the applications you use native mobile applications you use right now has this top bottom menu so this feels like a native application when displayed on a mobile mobile device so the first two items of the menu will come here or you can't even change this you can decide on which items will go here will be display displayed down here and the rest of the menu will be displayed here you can open it and see it right here and the settings and the user menu will work just the same and you can change dark you can change it to semi-dark and so on so this is the brief demo i want i want to show you let's go back to the presentation okay so we want obviously we want feedback this is still a we are still working on a beta version and this there are still a lot of features to work on box to fix fix and we don't know that you what you guys have been developing with your own project so we want you to try it on once it's available it's coming very soon and give us feedback on this repo so we will use this repo for a while not for long uh so once we release the stable version we will close this repo and we will go back to the support forum or open source github repos but now that we want to move forward fast we want to use we want to use this report to collect feedbacks and back reports from you guys and so that we can work on it fast and then we can release stable versions so let's talk about roadmap and we will release the beta one really soon and we want to release this stable version right after that and by uh you by abe version 5.1 we want to we want to make we might we want to change switch from laptops as a default team and we we will work on the top menu layout and there will be more custom components and we want to integrate more third party libraries so that if you like using some library that we haven't thought of it will look nice and will play nicely with laptops and we will work on this application pages like chat rating pricing invoice calendar etc and we will work on public website layouts and so on thank you for listening thank you bing yami the new theme looks very promising i hope everyone will love the new theme we are approaching the end keep your questions we will get them at the end the next is breaking changes and migration guide and i will explain you some of the important breaking changes with abp 5 and how you can migrate to the latest version and lastly i will share some community links and news about us as you know microsoft has just shipped the.net 6 framework the net 6 comes with many features and updates hot reload improvements rigid compiler runtime performance boosts and early builds of mao which is the new generation of the xamarin project the major update coming with abp 5 is the net 6 upgrade we have adopted to the net 6 the stable version and we have upgraded all our templates and all libraries to the latest.net and we are one of the first adopters of dot net six our abp io websites have been running on net six since the first preview version check out the richards blog post three churches from the.net team four dot net six features and enhancements well if you are planning to migrate from abp four to five there are some changes i will brief you tell you about them first of all with net 6 upgrade you need to install the latest visual studio 2022 or rider 2021.3 the there is bootstrap 5 upgrade as you may know bootstrap 5 the stable version has been released on may 5 and as a major change from the previous versions jquery is no longer dependence of bootstrap rtl support has been added and internet explorer 10 and 12 11 support dropped there is a new responsive font game and the package is lighter now also there are new apis available some classes css classes are dropped in bootstrap 5. there are replacements or ways to achieve the same result like data attributes attributes transform to database in the new abp templates we have applied these changes and successfully migrated to bootstrap 5. check out the bootstrap 5's blog post for more information abp 5 uses bootstrap 5 as the fundamental html css framework we have migrated all the ui themes tag helpers ui components and the pages of the preview application modules you may need to update your own pages by the following the bootstraps migration guide and the startup template change you don't need to apply all these changes but it's strongly suggested to follow this guide and make the necessary changes for your solution and we have a mongodb update abp framework will serialize the date time from now on if you don't want you can revert back this behavior and we are now publishing auto events in the same unit of work uh local and distributed auto events are handled in the same unit of work now and there are some deprecated data these entity events are deprecated if you have used the deprecated events see this github issue to learn more [Music] also we have made the i repository absolute in 4.2 and now i repository doesn't inherit from high quality anymore ultimate we are automatically setting the tenant id for the new entities begging from the abp5 abp automatically sets the tenant id for you when you create a new entity object as you may know you were setting it manually for the active tenant but now the tenant id is set from the current value of the i current tenant id property this may be a breaking chair change in rare cases for example if you create host site entities from a tenant contacts and don't explicitly set host entities tenant id to not also there is a new property on the u identity user entity uh is active state it's a boolean state the flag will be checked during the authentication of the users so for the ef core you developers need to add a new database migration to update their databases because after the database migration set this propriety to true for the existing users otherwise none of the users can log into the application this is uh important for mongodb you you need to update the is active field for the existing users in the database you can use the following script in shell and we have migration guides for all the ui types for angular mvc and blazer you can check out the related links or the migration guides for your website and for the complete abp 5 migration guide you can check out this link next we have community links i have some news about us and have got community links for you you can ask questions in the chat after this session i will jump into those and then we will head over to holly and others team members for the questions and answers section so we are really happy to be one of the sponsors of the net foundation uh we are proud to support other open source projects by being a corporate sponsor and abp reaches 7k stars this is another surprising maybe now it's more we knocked up knocked over 7000 stars this shows us how fast our community is growing for so thank you all for this stuff and abp community grows uh thanks to dylan similar uh in this regard events are also held around the world the lan simula gave a presentation on uh introduction to abp in paris thanks for his session there is learnabpframework.com and uh our members regularly ask video courses i know how useful video courses are learnabpframework.com helps you here i would like to say it doesn't belong belong to abp io platform one of our community members created this website if you it provides paid and free abp framework trainings it provides premium screencasts and build application and modules go check out learn learnabpframework.com ismail from indonesia dressed the admin lte theme on abp application template you can check out his work from his gita repository also uh another theme implementation is tesla template it's a bootstrap-based admin template and liam from china dressed abp framework with this template go check out his work on his github repository and as you know we have community that abp io and we have lots of abp community articles here and videos as well uh i picked some of them so if you want to learn how to set up an azure active directory and integrate it to your abp angular application you can check out gallip's post antosubash written hand article about how to add a new module to your abp application also deploying is another headache we get some questions about deploying abp application anter has a video post about this to deploy to docker swarm so changing ui team is also a frequently asked question uh you can check antos video for more information also many many-to-many relationship uh it's it i know it's not related to abp management relationship is an ef core thing but uh it's mainly asked to us and engine has an article about this i think he created a bookstore application with many to many relationship also uh albert has a new article about how to create a windows service with abp framework for those who want to create old style windows services also bart one huawei i think he is here in the chat uh he has a article about deploying abp applications to azure mehmet has an article about how to use prime ng components prime ng is also a popular one also mohammed has an article about angular material components with the avp framework some of you are asking me about integrating a workflow or creating a workflow module in ibp there is elsa workflow it has many stars on github and it's very popular creating a workflow within our team will be not good as elsa workflow so engine john has an article about integrating as a workflow to the abp framework devexpress is another popular tool component studio and berka has written an article about integrating devexpress laser ui components with david the next thing is uh a book about an abp framework we have never taught this anywhere a mastering abp framework built maintainable.net solutions by implementing software development best practices the lead developer has been writing a book for the abp framework mastering abp framework is a complete guide to start working with the abp framework in this book you can see the fundamentals of abp framework and learn how to implement software development with best practices it is now on pre-sale on amazon next it's related about us we are hiring if you visit volosoft.com slash carrier website we have many open positions and if you are interested in we would like to see you in our team to reach great communities and make it bigger community we want to write more articles video courses tutorials therefore we need developer adword case.net developers devops engineers angular ui developers and many more send your cv to hr.volasoff.com uh to apply one of these positions and lastly yeah we are in the end thank you for listening and taking time to listen to us uh i have shared all the links i showed you in this session in the in this link you can go and check out old links after the session now if you have questions we would like to answer them okay we are getting the first question from john uh thinking about new mobile application template form.net module rather than react native actually we haven't worked that yet but this is one of the idea to provide the secondary mobile ui or replace near react native if it's not used lightly uh yeah that can be an option but it's it's not started yet next question no we haven't worked to create dynamic form for blazer yet cprs not yet but we have plans on it very we have very serious plans about implementing securities but it will take some time and we need to work on that a bit more one of the most popular questions yeah yeah what's the best way to create reports from different microservices database the application yeah it's a generic question actually not directly related to abp there are some patterns actually it's a long topic transfer here [Music] okay i there is a question about uh creating a discord or slack channel for abp community i think we have github discussions for this maybe you can write it and share your ideas on github discussions of the abp framework the open source site uh can the easy crm application uh sample converted to ms sql uh omit it's currently using sqlite yeah it's currently using sqlite but it's just isn't easy the provider that's easy actually we may create a simple article for that i i'm getting another question sorry build rb come a job platform for abp developers yes uh we are planning for this to meet the developers with the business owners it will be also good for all of you uh how did is this a good question how difficult it is to switch to abp 5 if we have many custom pages actually is is based on actually the ui type you are using for for example if you are using mvc and use it tag helpers and just bootstrap standard struct components then it's not too hard you just need to make change for the custom bootstrap style users if you have used tag helpers abp automatically switched it but for your custom style usage yes you need to change your custom styling based on bootstrap file the the big issue is bootstrap 5 switch for the blazer side for example we are using a blade rise library it has no braking change as i know or maybe very small so for the ui part it's easy to switch that that's not too hard but it's related to how much you have used the native struck part bootstrap four i think uh there is another question about abp suite is there any improvement yes there is an improvement with a the five version uh the as you know the microsoft has dropped a db first approach but it's a very common last question abp suite now can connect to your existing database table and then create the page from your table so it's some kind of db first approach it can connect to any database and create metadata and then create your crude page that's the only thing i can say about it another question do you have a plan to build a cms like wordpress on avp what do you say any about that yeah it's not a but it's not a competitive wordpress it's a huge platform but we provide some cms features uh to bring your application for example comments uh pages blog posts and reactions ratings we can you can attach them to into your custom entities into your entities but we can create a demo how you can develop a cms-like website we can provide the demo but it's not in our plans maybe we can yes cms like wordpress is not an easy job and it's not actually our job but with the or cms kit project we are providing building blocks of uh common cms components like as any set like comments takes page blog posts and so on you can reuse these components they are reusable and improve they based on your requirements i think you can create a content management system but if you want to use it as an end user just use wordpress if you want to include cms features into your own application cmskit is very good have a question about impersonation i think i i missed the question uh i'm sharing the impersonation github issue it's already closed i think it will shift with abp 5 what do you think ali impersonation infrastructure has been developed in the abp framework site but we were we are considering it as a commercial feature and it has been shipped with avp commercial file so i can say that for the next question can we purchase avp suite without purchase no there is no uh option yet [Music] any products to include any type of reports framework to define custom reports and dashboards actually we are uh considering reporting is a another area and we are not planning to include a reporting system yes but we will prepare some demo uh that shows how it's integrated with power bi and some other tools yeah we have you can already use healthy article we have articles about reporting and such as devexpress reporting with uh source code so there is also an article integrated in the community yeah we have an article about devexpress integration you for reporting and also uh the most popular tool power bi from the microsoft we we have an uh i think uh some um yeah it's it's ongoing uh we will write an article about integrating power bi but we will not make a reporting tool because it's another business we will create articles about how to integrate so with so many different things but the implementation is depends on users can you belong to the couple ui from bootstrap for now no the coupling ui from a particular html and css framework is not easy it requires to create an entire obstruction of all the components so it's not independent actually electronics layout is decoupled from bootstrap it's a generic and it's it has been built with plain javascript html and css but the implementation with the avp framework still depends on the booster for now yeah laptops can use another framework but the abp packages use bootstrap components so maybe in the future it's a hard issue yeah there is an interesting question uh is the long-term vision for avp to remain with the layered architecture or will we see better support for feature vertical thin slicing in the future actually avp avp frameworks infrastructure is not coupled to layered architecture it you can just create a single layer project that's an article that ahmed is currently working on he is creating an avp community article that will demonstrate how you can create a single layer a single project solution with the abp framework that does exactly the same with the startup target that's later who to who want to get that solution actually we publish it on abp samples repository i will provide a link at the chat you can check the single layer abp framework application we can tell the identity server replacement maybe i would write okay probably it's not clearly decided yet we are thinking about that for a long while uh one option can be obstructing the island server it's a little bit hard but maybe the best option uh to complete the abstract authen uh authentication system actually it's uh mostly abstracted uh from the framework level uh but we we should work on that uh currently there is no very clear decision we have some options and will be explained in in the next releases and in the next month we will share with the community okay do you have a marketplace below for app yes we have but we currently are working hard to create a open modularity system that that means anyone can publish reusable modules to anywhere then anyone can install these modules from to their applications we are working hard for such a flexible modularity uh module install and uninstall system and we will have a marketplace for open source and commercial modules but it takes time [Music] one other question do you have a plug-in live with library dependencies sample there is no such a sample i think there is a documentation with plug-in modules but yeah we may create an article about that i i will think about this okay i take another question how difficult is to switch to abp file if you have any custom pages ah sorry the latest question is that there should be a way to install modules and runtime actually installing modules and at runtime is a different topic we haven't invested time about that avp's modularity is developing time modularity um it's not like a wordpress and also net is not such a dynamic to be honest like a php so we haven't worked on that it's a long term it can be a long term goal yeah i think we yeah we have completed two hours uh we can close yeah if you don't have any new questions corey is asking about creating the volo store so he can he can purchase the swag i don't know if if community buys it why not worry send your address to info at abpio there is a graphql question a good question no we have a we have no graphql [Music] in the short term pillar it's in the roadmap actually but implementing graphql is currently possible you can just use we we will consider if we can add a value on top of the graph jar but currently you can use just as is as like any dot net project we haven't any problem with kraftko or any infrastructure specialty yeah evp already works with minimal apis i think we will create an article uh like that in the uh ahmed single layer article we will use the minimal api approach we will use yeah it's already usable i want to say one thing yeah the contribution is not we really appreciate if you contribute the vp framework we are working hard on them but the community is also can contribute that contribution is not about only coding you can translate to your own language whole app documentation it will really help abp also [Music] i can say a couple of things about this one if you want yeah please uh we all already uh providing three different clients and visibilizer angular and maintaining and adding features for all of tests all of those are really hard and taking a lot of time and adding one more template would uh like call triple our time uh the work on the features but maybe in the future we could add react or view templates but down now right right now we are we have higher priority issues to work on so maybe in the future but i guess not right now right yeah it's not an easy question to answer here you you may create an issue on github and we can share our idea can we change implementation can build complex forms using abp suite no avp suite has a template and it generates code using these templates you may need to customize after it after the generation another question can we change implementation of a class interfacial runtime yeah actually you that's not so related to avp if you have if you you have a multiple implementation of the same interface you can create a registration with the factory method registration and you can conditionally return the implementation based on some configuration or runtime value this related to depends injection of asp.net core okay i think we will have more questions but we uh we should finish because uh va and also uh people are tired towards is very long we will have meeting in every month from now uh actually we may have meetings more than one time in month in a month we have a lot of idea to talk with like microservice development modular development and based on your questions and requests from github and so on so we will have more meetups in the next months helper you can close or yeah i would like to say if you also want to participate in these sessions and if you have anything about say or if you have implemented anything new on top of abp framework we can have a have you as a guest in these sessions so thank you for all uh and thanks for having time with us uh we are in the end so bye bye bye everyone guys bye bye have a good one see you on the next comedy talk
Info
Channel: Volosoft
Views: 1,566
Rating: undefined out of 5
Keywords:
Id: uLu2t5E8T-w
Channel Id: undefined
Length: 126min 24sec (7584 seconds)
Published: Thu Dec 16 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.