Base solution for your next web application
Ends in:
01 DAYS
01 HRS
01 MIN
01 SEC
Open Closed

Missing Documentation: Application features controllable in appsettings.json #6814


User avatar
0
commondesk created

Im looking for the documenation that describes what these values that can be set in appsettings.json file. See below.

Its not accepable that you dont have documentation on this. I paid a lot of money for this framework.

Please stop addeing new features that im not using and document your existing features.

Thanks

public const string BillingLegalName = "App.HostManagement.BillingLegalName";
public const string BillingAddress = "App.HostManagement.BillingAddress";

public const string LayoutType = "App.UiManagement.LayoutType";
public const string ContentSkin = "App.UiManagement.ContentSkin";
public const string FixedBody = "App.UiManagement.Layout.FixedBody";
public const string MobileFixedBody = "App.UiManagement.Layout.MobileFixedBody";

public const string Theme = "App.UiManagement.Theme";
public const string ThemeColor = "App.UiManagement.ThemeColor";
public const string DesktopFixedHeader = "App.UiManagement.Header.DesktopFixedHeader";
public const string MobileFixedHeader = "App.UiManagement.Header.MobileFixedHeader"; 
public const string Skin = "App.UiManagement.Header.Skin"; 
public const string Position = "App.UiManagement.Left.Position";
public const string AsideSkin = "App.UiManagement.Left.AsideSkin";
public const string FixedAside = "App.UiManagement.Left.FixedAside"; 
public const string AllowAsideMinimizing = "App.UiManagement.Left.AllowAsideMinimizing"; 
public const string DefaultMinimizedAside = "App.UiManagement.Left.DefaultMinimizedAside"; 
public const string AllowAsideHiding = "App.UiManagement.Left.AllowAsideHiding"; 
public const string DefaultHiddenAside = "App.UiManagement.Left.DefaultHiddenAside"; 
public const string AllowSelfRegistration = "App.TenantManagement.AllowSelfRegistration";
public const string IsNewRegisteredTenantActiveByDefault = "App.TenantManagement.IsNewRegisteredTenantActiveByDefault";
public const string UseCaptchaOnRegistration = "App.TenantManagement.UseCaptchaOnRegistration";
public const string DefaultEdition = "App.TenantManagement.DefaultEdition";
public const string SubscriptionExpireNotifyDayCount = "App.TenantManagement.SubscriptionExpireNotifyDayCount";
public const string BillingLegalName = "App.UserManagement.BillingLegalName";
public const string BillingAddress = "App.UserManagement.BillingAddress";
public const string BillingTaxVatNo = "App.UserManagement.BillingTaxVatNo";
public const string AllowSelfRegistration = "App.UserManagement.AllowSelfRegistration";
public const string IsNewRegisteredUserActiveByDefault = "App.UserManagement.IsNewRegisteredUserActiveByDefault";
public const string UseCaptchaOnRegistration = "App.UserManagement.UseCaptchaOnRegistration";
public const string SmsVerificationEnabled = "App.UserManagement.SmsVerificationEnabled";
public const string IsCookieConsentEnabled = "App.UserManagement.IsCookieConsentEnabled";
public const string IsQuickThemeSelectEnabled = "App.UserManagement.IsQuickThemeSelectEnabled";

16 Answer(s)
  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @commondesk

    First of all, we are working on improving our documentation and I think it will help you as well. You don't have to know those settings because you (tenant, host or the end user) can configure the values of those settings in several UIs.

    The ones start with "App.UiManagement.*" is related to visual settings page. So, if you open Visual Settings page on your app, you can configure those settings.

    For others, they can be configured on settings page (both for Tenant and Host side).

    Here are current documents about those settings:

  • User Avatar
    0
    commondesk created

    Thanks for the links. I think my point is getting lost.

    What we want to do is to disable or change some aspects of the site, so when it gets deployed if looks and behaves differently.

    Its going to be deployes with continious interation, so we cant login to make console changes.

    What im looking for is a way to disable the features in code.

  • User Avatar
    0
    ismcagdas created
    Support Team

    @commondesk

    What im looking for is a way to disable the features in code.

    If you can specify which features, we can try to help.

    The constant you have shared in your initial post are setting names. You can change setting values in AppSettingProvider.cs class.

  • User Avatar
    0
    commondesk created

    There is a fundamental problem here.

    Your team see's new features as a benefit, so adding more of them in every release is a good thing.

    I view new features as something that i need to, test, document and support, and many of these features don't make sense in my business use case.

    I view new features like a menu in a restaurant. I like that I can choose different things to eat, but i don't want to order ALL of them every time i come into the restaurant.   Every time you upgrade i need to go through the process of removing items i don't want from my order.

    For example:

    • I don't need chat. No user of my system needs to chat with other users.
    • Eventually when i have time i will be able to translate my application specific messages to other languages. But currently i don't have time or money for that. So for now, i can only support one language -- English.
    • I'm adding my own pages and I don't have time to test my pages with all of the themes that are provided. Therefore I don't want my users to change themes.
    • I for one, needs OAuth support, but i imagine many people do not.
    • I don't want to support multiple tenants.
    • I don't want to require a Captcha
    • etc, etc, etc

    As i've stated in other posts, i want to support continuous integration and there for do not want to login as admin, and unchecked features in order for the site to be usable.

    From reviewing the HTML, I see that some of these feature can be disabled, via ngIf. But its very confusing to figure out whats required to disable each feature.

    These are the various techniques i have found that you make use of.

    • Some classes require methods that return t/f in each components TS file,
    • Some classes call method in AppComponentBase
    • Some have site wide changes found in appsettings.json file
    • Some have site wide changes found in AppSettingProvider.cs file
    • Some have site wide changes found in VenueConsts.cs file
    • etc.etc.

    And now every-time you come up with a new release, i need to make sure that any of the changes i've made are re-implemented in the new template. So far in 2019 you have updated the template 6 times.

    So, i know that you're going to fix the problem with multi-tenants being enabled by default in your 6.9.2 release?   I want to use it since its a problem for me. But i will need to re-implement, test and certify all of the other changes i made.  Its a big mess.

    I have some thoughts on how you might consider fixing this problem

    1. Make a dependency injected UiConfiguration object that is a single place where all features get enabled or disabled.  Each customer will have their own copy of this.  When new templates are provide you will not provide any changes to this class.  Therefore the merge will be very easy.
    2. Make all of your TS classes that derive from AppComponentBase work like this.   Recently we needed  to add functionality such that: when a user is deleted from your backend system, we also delete elements in other systems.    What we did was:
      • Reamed UsersComponent to UsersComponentBase.  Made it private and removed the @Component from this class.
      • Created a new class called UsersComponent in a different file, that derives from UsersComponentBase and added the @Component.
      • Added a new constructor that passes all DI objects to the base class constructor.
      • Overloaded the method deleteUsers.
      • Copied the logic in the base deleteUsers to the overloaded method and made our changes in this method in the new class.

    While this is not perfect, it will be much easier to merge this change when a new version of the template is made available because, all changes are separated into a different class.

    I'm suggesting that you refactor your entire code base and make those changes.

    For every UI component, you would provide a class with no methods and a constructor that simply calls super(args). Customers will have the option to customize the empty class named XXX and ASPNETZERO will update the logic in the class named XXXBase.

    This change would not effect existing customers who don't modify the system, but would provide a methodology for supporting changes with customers who must modify the system.

    3.  Another variation of the base class trick is this.  We sometimes need versions of your pages that run on different devices  and therefore need a different html or css definitions. What we do is to:

    • Rename the base class
    • Add a new class
    • Change the @component templateUrl and styleUrl definitions point to new locations.

    I used this as a way to remove UI elements from the topbar.component.ts file. I used this trick and provided a templateUrl directed to a html file with all of those elements removed.

    Conclusion I've been a developer for many many years and I really like your framework. But, as a customers that must make changes to what feature our users see,  its becoming very difficult to support your platform without changes like i've described above. You really should consider providing a technique like ive desribed or something better.

    Thanks for your consideration

    Mitch

  • User Avatar
    0
    commondesk created

    @ismcagdas, @maliming -- any comments on my last past would be greatly apprciated!

  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @commondesk

    Sorry for our late response and thank you for your suggestions, we really appriciate it. Actually AspNet Zero is designed as a startup template and we haven't thought much about how customers can upgrade a downloaded template with the latest version. But in time we have received many requests about this.

    There are 2 things here I guess,

    1. Excluding some features: Probably we will not provide such an option for AspNet Zero, at least in the near future.
    2. Making updates easy as you decribe: We will work on your suggestions and try to implement it in AspNet Zero but probably it will be after v7.0 release since we already started to work with Metronic v6 upgrade.

    Thanks again for your valuable comments and suggestions.

  • User Avatar
    0
    commondesk created
    1. If the "Excluding features using the DI object" is a non starter, I will choose to provide different versions of topbar.component.html. So i can simply not show the relivent sections at the top.

    2. You might want to consider adding https://www.uservoice.com/ It would allow the customers to give you feedback on what changes are important and whats not. While i understand that GraphQL is a great technology, it might be voted higher or lower than other topics. The guys who run servicestack.com use it.

    3. You really need a FAQ section in your forum. You should create multiple FAQ pages for for Angular, MVC etc. Then topics that keep coming up over and over can be better documented. I keep seeing places where someone comments and links to another post, which links to another post. Its a mess. A FAQ page would be the place where these reoccuring posts can be moved to.

    4. Any dates on when Metronic V6 or aspentzero V7 are scheduled to complete?

    5. Your company is at a intersting stage in development. You got to where you are by adding new features to attract new customers. But now, you have a lot of customers who all make yearly renewals.. So you need to decide which group you want to continue to make happy. I think you should add more tools and support for your existing customers.

    6. If your company is just to "provide a startup template" and its very costly to upgrade templates, few of your existing customers will ever upgrade, and therefor will not see the new features. Why would i continue to pay you yearly support, if you make it difficult to upgrade to the latest template where bugs are fixed and new features added.

    Thanks for taking the time to read my comments..

    Mitch

  • User Avatar
    0
    bbakermmc created

    @commondesk You have alot of the same issues we have, and Ive been bringing up for over a year. Things done really seem to change, they are more focused on the 1x use cases, thats what they seem to want to sell. They are also working on 3 other projects, ABP, and ABP.IO (I would also assume the paid version of ABP.IO as well). Can only hope that the ABP.IO will be better structured for upgrades and support long term. Part of this is the lack of support for the previous versions of metronic. Basically the v4 to v5 was a huge rewrite, hopefully the v5 to v6 isnt as bad. We are still converting to the v5 code, and now v6 is coming out :(. So this means we cant upgrade past 6.9.x, and any new fixes/updates wont be compatable. If they were truly invested in to the customers they would have a v4, v5, v6 branch and then issue an EOL maybe 6m to 1yr to allow people to upgrade away, but not here, 7.0 comes, if you want any of the fixes you need to be ready for v6, even if they have missing features, or broken code (which seems to be the case most times now days). No one says there isnt value, but sometimes we question if we made the right choice rather than just picking a more robust CMS solution where upgrade paths are more defined and thought out. Also not everyone only works on NetZero, we have other platforms we develop on and sometimes it seems like they expect you know every piece of code, even the bundled abp framework, so it becomes a nightmare to be like well did you check the zero help section, then the abp help section. Hopefully the revised documentation will help.

  • User Avatar
    0
    leonkosak created

    That's all true, but as I can see ABP.IO (and paid components) is focused on upgradability. Besides that, Volosoft has now dedicated designer and ABP.IO-based solutions will have it's own theme (also greater support for theming). Let's face it - Metronic is a big messy container of open-source libraries and components with awful documentation and bad support. Each major version (after 1.5-2 years) is a complete rewrite and after 5 iterations I cannot understand that kind of development in Keenthemes team. Most of us are using dedicated components (like DevExtreme) and we don't care about PrimeNG and other stuff. Maybe sweetalert and some other "easy components" (alerts, buttons,...), but personally, I use DevExtreme for all components in my applications. I would prefer that ABP.IO themes would have "options" that would "visually integrate" with DevExtreme (and other component suites - Telerik,...).

  • User Avatar
    0
    commondesk created

    From what i can see about abp.io, it appears to be a container framework around the backend of aspnetzero. (yes a vast over-simplication). but the backend of the system is not the problem.

    The frontend is the problem. the problem is compounded by the fact that the angular specific internal documentation is sparse. im new to angular, but people with years of experience also find it confusing.

    if this was an opensource project i would not complain. but i put down my $2500 so i did not have these sort of issues. im fealing tricked!

    They keep saying that, this is a starter project, but the nasa logo on the home page, is not a startup company.

    i see they just added graphql support. not sure about everyone else, but based on my limited understanding of graphql, im not going to ditch rest api's anytime soon. so why take the time to implement graphql??. they need to focus on supporting EXISTING customers, who pay yearly renewals.

  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @commondesk

    if this was an opensource project i would not complain. but i put down my $2500 so i did not have these sort of issues. im fealing tricked!

    This is very sad for us to hear that. We try to do our best to satisfy our customers and implement their requests in AspNet Zero as much as we can.

    We also accept that there are some missing points in our documentation and we are working to make it better. But, AspNet Zero is not a low-code platform, so our customers get the source code and they must know the technologies we are using like Angular, ASP.NET Core etc...

    Some of our customers will use GraphQL, some others will not and we are trying to keep a balance between those when we are adding new features. Believe me, if we start not adding new features and only writing documentation, we will get more complains than we are getting now :).

    Also, don't forget that, you always have right to ask questions on premium forum support when you face any problem or difficulty in AspNet Zero. Most of the time, we answer questions (even the ones not related to AspNet Zero) in a business day. You can also get support even if your license expires on stackoverflow. Our team is answering questions on stackoverflow and GitHub (aspnetboilerplate repository).

    By the way, I don't know any product with its source code with such a price.

    Anyway, we will work harder to make AspNet Zero's documentation better as I said in the other topic.

  • User Avatar
    0
    leonkosak created

    That's absolutely true what Ismail wrote. Aprox. 2 years ago, I started with ASP.NET Boilerplate and then ASP.NET Zero based on .NET Framework and jQuery. I have basically no knowledge of Angular (and no experience with ABP/Zero architecture and practices). But I have courage to start enterprise project with .NET Core and Angular based on ANZ and today I can say that learning ANZ/ABP and Angular (and a little .NET Core) was the best stack which boost my productivity multiple times and even beta versions of software is much more stable than ever.

    @commondesk: It's not fair that you blame application framework for not knowing library or framework "inside" ABP/ANZ. Just accept reallity - modern full-stack web is noticeable more complex than native (desktop and other native) frameworks. There are so many libraries and frameworks and each of them have active development. After all -in ANZ you have plenty of Angular/C#/... examples. Of course, there is always room for improvements (like going towards Reactive Forms in Angular projects,...), but with ABP/ANZ learning courve is much faster. The only real competition to ABP/Zero is Orchard Core platform mostly because of upgradability (which will be solved with abp.io).

  • User Avatar
    0
    commondesk created

    Don't get me wrong, I like the platform and the product. My goal in posting this is to air out several architectural problems, and search for ways to manage these issues.

    These are the problem i see

    1 - New templates are made available, 6 in 2019 alone, and there is no documented way to upgrade your code to them. New templates serve two purposes, they provide new features and they fix bugs. Fixing bugs is a non-optional requirements while adding feature is completely optional.

    While this is a problem for anyone who changes the source code of a large system, little to no thought has going into best practices for attempting to upgrade. We must find a way to merge bug fixes into later version.

    In the past i made a suggestion that changes between each template be provided as a set of GIT patch/diff files. This way we could apply the diff's that represent bug fixes. I hope to hear more feedback about his approach

    2 - Beyond adding fixing bugs and adding new ANZ template features, we as developers need to add our own change to the template. This is non-optional for us as we need mold ANZ to meet our business needs. In this thread, you will see that i made a proposal for how, ANZ could structure their system so changes could be made easyer to merge. Creating TypeScript base classes and empty Stub classes etc. I hope to hear more feedback on this approach.

    3 - Source code for the system is provided, but there is little documentation for the source code. I know that asking developers for source code documenation is always a difficult subject. But for a comerical product its much more expected than for an open-source product. This is a commerical product with a $2500 a year renewal. Im not looking for source code telling me how each line works, but i would like to know many things includeing:

    • Where each element of the user page is located. TopBarMenuCompnent is at the top of the screen. etc.
    • How to make use of the baked in popup dialog system.  It turns out some of these are based on other library's, that have documentation.  Why not just provide a link to that documentation.
    • How aspects of the system can be disabled. My users have no use of a chat system.

    I applaud ANZ as their last version of the documentation.  It was much improved.   But I hope to see more additions in the near future.    These are the topics i would find useful.   What topics do you need documented?

    I hope everyone views my sharp comments as a way to find better solutions to  help all of us.  But to solve these problems, you need to admit there are problems.

    <br> <br>

  • User Avatar
    0
    commondesk created

    @leonkosak

    @commondesk: It's not fair that you blame application framework for not knowing library or framework "inside" ABP/ANZ. Just accept reallity - modern full-stack web is noticeable more complex than native (desktop and other native) frameworks. There are so many libraries and frameworks and each of them have active development.

    Google, does a fine job of documenting Angular. Microsoft documents ASPNET and C#. Telerik documents their proudcts.. Im happy to learn new framework, but you cant unless there is some documenation.

    Modern full stack web frameworks are not more or less complicated that desktop ones. The problem is there written my many groups of people and therefore the documantion standard is lower.

  • User Avatar
    0
    commondesk created

    Just to be be clear, im not saying the product is not worth the money. I'm saying that its important that you find a way to support companys that have made an investment in your technology and have been with you for a while.

    By the way, I don't know any product with its source code with such a price.

    http://www.servicestack.net
    https://www.telerik.com/

    Anyway, we will work harder to make AspNet Zero's documentation better as I said in the other topic.

    Thank You!

  • User Avatar
    0
    ismcagdas created
    Support Team

    Hi @commondesk

    If you have a specific question you can create a new topic, I'm closing this one. Thank you for your suggestions again.