Activities of "Radoslav"

HI,

This is about this documentation page: https://docs.abp.io/en/abp/latest/Virtual-File-System#dealing-with-embedded-files-during-development Dealing With Embedded Files During Development

I think this sentence: "physical file at development time" should be changed to physical file at development time (when a host app is run at development time - in run mode)

I am confused about what modules I would need to include when I use AbpVirtualFileSystemOptions.FileSets.ReplaceEmbeddedByPhysical method. I am using some existing web applications as examples.

I need to uderstand this: **The example below shows an application that depends on a module (MyModule) that contains embedded files. The application can access to the source code of the module at development time. ** When I always start my web project I would say that any change I make within the solution will result in comilation and only then the web app will run, which means embeded files will be also compiled into depended assemblies and will be avalable to the web app. Is this only about changing files marked as embeded at run time (once the web app is running) that the abp virtual file system will serve these changed physical files?

First case is when I have the theme AdminLTETheme project added to the solution and I can see **AbpAspNetCoreMvcUIAdminLTEThemeModule **being added to the web Commerce.Web.cspro. **Why? ** I can see that CommerceWebModule, CommerceDomainSharedModule and CommerceApplicationContractsModule are being added. **Why? **

Is the rule that whenever I mark a file as embeded and I intend to change it at run time, I will need to add its module to the host app?

D:\Projects\Commerce\src\Commerce.Web\CommerceWebModule.cs

Configure<AbpVirtualFileSystemOptions>(options =>
{
	options.FileSets.ReplaceEmbeddedByPhysical<CommerceDomainSharedModule>(Path.Combine(contentRoot, $"..{separator}Commerce.Domain"));
	options.FileSets.ReplaceEmbeddedByPhysical<CommerceApplicationContractsModule>(Path.Combine(contentRoot, $"..{separator}Commerce.Application.Contracts"));
	options.FileSets.ReplaceEmbeddedByPhysical<CommerceWebModule>(hostingEnvironment.ContentRootPath);
	options.FileSets.ReplaceEmbeddedByPhysical<**AbpAspNetCoreMvcUIAdminLTEThemeModule**>(Path.Combine(contentRoot, $"..{separator}..{separator}modules{separator}Commerce.Themes{separator}src{separator}ABP-Framework-Theme-Using-AdminLTE3-Template{separator}src{separator}Indo.Abp.AspNetCore.Mvc.UI.Theme.AdminLTE"));
});

This is the second case. I am not so sure if all of these modules needs to be added.

D:\abp\modules\cms-kit\host\Volo.CmsKit.Web.Unified\CmsKitWebUnifiedModule.cs

public class CmsKitWebUnifiedModule : AbpModule
    public override void ConfigureServices(ServiceConfigurationContext context)

if (hostingEnvironment.IsDevelopment())
{
	Configure<AbpVirtualFileSystemOptions>(options =>
	{
		options.FileSets.ReplaceEmbeddedByPhysical<AbpAspNetCoreMvcUiThemeSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}..{0}framework/src{0}Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared", Path.DirectorySeparatorChar)));

		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitDomainSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Domain.Shared", Path.DirectorySeparatorChar)));
		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitDomainModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Domain", Path.DirectorySeparatorChar)));

		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitCommonWebModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Common.Web", Path.DirectorySeparatorChar)));
		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitPublicWebModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Public.Web", Path.DirectorySeparatorChar)));
		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitAdminWebModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Admin.Web", Path.DirectorySeparatorChar)));

		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitApplicationContractsModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Application.Contracts", Path.DirectorySeparatorChar)));
		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitApplicationModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Application", Path.DirectorySeparatorChar)));
		options.FileSets.ReplaceEmbeddedByPhysical<CmsKitWebModule>(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}src{0}Volo.CmsKit.Web", Path.DirectorySeparatorChar)));
	});
}
  • ABP Framework version: v5.2.0-rc.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

I generated solution with abp suite v5.2.0-rc.2. I have this error in all web apps: Admin, Public and Identity.

Severity Code Description Project Path File Line Suppression State Error TS6053 File 'D:/Acme.HelpDesktop52/src/Acme.HelpDesktop52.Admin.Web/node_modules/source-map/source-map' not found. The file is in the program because: Root file specified for compilation Acme.HelpDesktop52.Admin.Web JavaScript Content Files 1 Active

Thanks

  • ABP Framework version: v 5.2.0-rc.2
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"

I am using the latest Abp Suite to generate code for entities. I am following this tutorial: https://docs.abp.io/en/commercial/5.2/abp-suite/creating-many-to-many-relationship

I wanted to know if I can during Code generation time to enter my custom properties of simple type or even navigation property to other existing entity.

So I want this link:

to look like:

I suppose you didn't plan this feature. I would suggest you would provide devs a chance to

BTW I have a DB schema with many of these many to many relationships using a linked table, sometimes with and sometimes without extra properties. What would I need to do regarding writing remaining code (after code generation) to allow for editing/viewing extra properties (and maybe navigation properties)

As we know sometimes linked tables can have more complex relationships with other tables (let's say 1 to many with some other table, like a category for a book applies to a collection of Regions)

Thanks Rad

I would like to convert a wordpress theme that builds on top of some Post types: Page, Post, Archive, Nav-Menu-Item, Revision etc. I would like to see how Cms-Kit is extensible and use that approach or try to change/enhance it in the best possible way to allow easy upgrades (without my code becoming unusable) and to get some advice on where and how to extend Cms-Kit to allow new upgrades to that module.

Wordpress has the concept of Post Types (see below). It seems that Post Type 'post' corresponds to Page in Cms-Kit and 'page' to Blog

https://docs.abp.io/en/abp/5.2/Modules/Cms-Kit/Pages https://docs.abp.io/en/abp/5.2/Modules/Cms-Kit/Blogging

Wordpress allows creating Custom Post Types like 'Book' that can "inherit" from one of these default post types let's say 'post' So I can get a list of Books based on some Category association with 'Book' custom type. So posts can be listed in a template. To add custom properties to 'Book' Wordpress uses the concept of Custom Fields that can hold Book related properties like AuthorName, PublishYear etc. Also a taxonomy can be created with is like hierarchical category list and a taxonomy can be associated with the Book custom type. In that way we can categorize Books by some of Taxonomy terms.

So how to specialize some of the Page and Blog entities to add extra fields and how to provide additional categorization via various Taxonomies (with their terms) Is there a way to extend Cms-Kit to render those additional fields and additional categorizations we introduced (it is like a hierarchical Category listing where we can have Category.ParentId pointing to the Parent Category.

I would like to have capability to have multiple custom layouts for Customer facing site for each Page or Post and specialization of these (like Books, Authors, Teachers etc) so I can display one Book content in 2 columns with one side section or in 3 columns without a side. What would be the best way to manage such layouts and to design them and invoke at run time if a particula Book selects a particular layout and not a default one.

Custom Types

Can I use something like this:

        Configure<CmsKitCommentOptions&lt;>(options =>
        {
            options.EntityTypes.Add(new BookEntityTypeDefinition(nameof(BlogPost)));
        });

            options.FileSets.AddEmbedded&lt;EventHubDomainModule>();
        });

        Configure&lt;CmsKitCommentOptions>(options =>
        {
            options.EntityTypes.Add(new BookEntityTypeDefinition(nameof(BlogPost)));
        });`

Thanks Rad


There are many different types of content in WordPress. These content types are normally described as Post Types, which may be a little confusing since it refers to all different types of content in WordPress. For example, a post is a specific Post Type, and so is a page.

Internally, all of the Post Types are stored in the same place — in the wp_posts database table — but are differentiated by a database column called post_type.

In addition to the default Post Types, you can also create Custom Post Types.

The Template files page briefly mentioned that different Post Types are displayed by different Template files. As the whole purpose of a Template file is to display content a certain way, the Post Types purpose is to categorize what type of content you are dealing with. Generally speaking, certain Post Types are tied to certain template files.

Default Post Types

There are several default Post Types readily available to users or internally used by the WordPress installation. The most common are:

Post (Post Type: ‘post’)Page (Post Type: ‘page’)Attachment (Post Type: ‘attachment’)Revision (Post Type: ‘revision’)Navigation menu (Post Type: ‘nav_menu_item’)Block templates (Post Type: ‘wp_template’)Template parts (Post Type: ‘wp_template_part’)

The Post Types above can be modified and removed by a plugin or theme, but it’s not recommended that you remove built-in functionality for a widely-distributed theme or plugin.

It’s out of the scope of this handbook to explain other post types in detail. However, it is important to note that you will interact with and build the functionality of navigation menus and that will be detailed later in this handbook.

Top ↑

Post Posts are used in blogs. They are:

displayed in reverse sequential order by time, with the newest post first have a date and time stamp may have the default taxonomies of categories and tags applied are used for creating feeds

The template files that display the Post post type are:

single and single-post category and all its iterations tag and all its iterations taxonomy and all its iterations archive and all its iterations author and all its iterations date and all its iterations search home index

I asked this question on stackoverflow: Extending IdentityUser (AppUser) in a DDD based abp.io application Now (after version 4.4+) that EntityFrameworkCore.DbMigrations was removed and AppUser custom class is removed or discouraged, I was wondering how to conveniently extend User profile/identity to have all kid of sorts of relationships: 1 to 1 1 to many many to 1 (+ extra simple property types) ... with IdentityUser so that EF migration works well, enable easy retrieval and updates to extra properties from GUI.

The documentation only mentioned a simple string type SSN and it is spread across many extensibility topics. It is not quite clear about GUI and EF migration adjustments to accommodate simple types, navigation properties, collections to other entities. I would like to see a more complex example following good DDD practice in the version 4.4/5+ involving these cases above. I am aware of many questions/answers about using AppUser, but there are hardly any decent examples on how to do it after removal of EF migration project. I would prefer to have a custom AppUser class where I can add extra properties and relationships.

Maybe I need to have 1 to 1 relationship between IdenityUser class and this new AppUser class. What if I want to have several classes of user that need to inherit from IdentityUser class? Thanks Rad

I want to have a total control over what my startup templates (app and module) migh look, so I can make my own changes to abp provided templates. For example I can successfully create a new application where I explicitly have app-4.4.4.zip inside D:/AbpStartupTemplates/rel-4.4/templates/app (with my change). Let's say I have a readme.file inside that Zipfile in asp.net-core folder.

abp correctly picks my local templated packaged in app-4.4.4.zip file: abp new Acme.Bookstore --template app --create-solution-folder true --ui mvc --tiered true --mobile none --dbms SqlServer --database-provider ef --connection-string Server=localhost;Database=AcmeBookstore;Trusted_Connection=True --no-random-port true --template-source D:/AbpStartupTemplates/rel-4.4/templates/app --version 4.4.4 --local-framework-ref --abp-path D:/abpdev --preview false

It seems that the add-module command doesn't have that option to select custom local --template-source argument. It is ignored. D:\TestApps\Ravco.Rstate> abp add-module Acme.Bookstore.Author --new --version 4.4.4 --template-source "D:/AbpStartupTemplates/rel-4.4/templates/module

I think that this is missing feature as it is needed to allow local template for module which might be modified from the original.

[06:06:45 INF] Creating your project... [06:06:45 INF] Project name: Acme.Bookstore. [06:06:45 INF] Template: module [06:06:45 INF] Version: 4.4.4 [06:06:45 INF] Output folder: D:\TestApps\Acme.Bookstore\modules\Acme.Bookstore.Author [06:06:46 INF] Using cached template: module, version: 4.4.4 [06:06:49 INF] Check out the documents at https://docs.abp.io/en/abp/latest/Startup-Templates/Module [06:06:50 INF] 'Acme.Bookstore.Author' has been successfully created to 'D:\TestApps\Acme.Bookstore\modules\Acme.Bookstore.Author'

  • ABP Framework version: v4..4.4
  • UI type: MVC
  • DB provider: EF Core
  • Tiered (MVC) or Identity Server Separated (Angular): yes
  • Exception message and stack trace:
  • Steps to reproduce the issue:"
Showing 1 to 6 of 6 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 01, 2024, 05:35