Hi,
I think there are two types of validation:
Simply validating format of the DTO properties, like it should not be empty ([Required]), it should be maximum 10 chars ([MaxLEngth(10)])... and so on.. This can be easily done with data annotations and ICustomValide interface of ABP if needed.
Validating business rules that may require additional services (like repositories) and a part of business of the application. So, this should be done in a seperated class (that is used by application service by injecting). It may be called Policy or Strategy, like. For example: UserPolicy.CanCreateUserWithName(...) can check for duplication of the user name.
So, both of them have own power and own purpose. They can be used together.
Hi,
Sorry, but I've no time to improve and update Taskever. You can use it as it is.
For schema, see <a class="postlink" href="https://github.com/aspnetboilerplate/taskever/tree/master/src/Taskever.Infrastructure.NHibernate/Data/Migrations">https://github.com/aspnetboilerplate/ta ... Migrations</a> for NHibernate. You can run migrations to create the schema. It uses fluent migrator. See <a class="postlink" href="http://www.codeproject.com/Articles/768664/Introduction-to-ASP-NET-Boilerplate#InfraMigrations">http://www.codeproject.com/Articles/768 ... Migrations</a> if you did not use FluentMigrator before.
First of all, if your application will be public, you should also think about SEO if you're using Angular (Fortunately there are some solutions but you should take care of it).
Actually, it's simple. In the sample app (<a class="postlink" href="https://github.com/aspnetboilerplate/module-zero/tree/master/sample">https://github.com/aspnetboilerplate/mo ... ter/sample</a>), you should remove [AbpAuthorize] of the HomeController. Then MVC will not redirect to login.
In your angular application, you should check if user logged in and show some menus/links. You should only authorize needed app service methods, not all.
Hi,
Multi-tenancy is a core subject for ASP.NET Boilerplate since cloud (SaaS) applications increases. It's optional since it makes your application complicated. If you will just sell your application to a single company, no reason to make it multi-tenant. But, if your application will work on the internet and a single deployment and single database will be shared by different customers (tenants) then it should be multi-tenant where each tenant (customer) will manage it's own roles, users, permissions, settings and other application-specific entities.
Wikipedia defines it well: <a class="postlink" href="http://en.wikipedia.org/wiki/Multitenancy">http://en.wikipedia.org/wiki/Multitenancy</a>
There is no ABP based sample multitenant application. Actually, it's easy to make ABP-based apps multi-tenant. I will prepare a sample in near future. But, for now I'm hardly working on multi-tenancy parts. When I finish and test it well, I'll document it.
I don't think multi-tenancy to be a seperated module since it's a core concept for ABP. It's optional and no problem if your app is single-tenant.
I answered here: #3
Hi,
Start class is HomeController for MVC, app.js for angularjs. But if you don't know MVC, you can not understand and use ABP properly.
If you're using angular, one of the best options is <a class="postlink" href="http://ui-grid.info/">http://ui-grid.info/</a> It's a little hard to learn but it's powerfull and most appropriate grid for angularjs.
If you're using durandal or MPA, you can use jTable. jTable (and almost all jQuery-based libraries) does not work fine with angular.
Hi,
Not yet, as a guide. But you can check these:
<a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/Module-System">http://www.aspnetboilerplate.com/Pages/ ... ule-System</a> <a class="postlink" href="http://www.aspnetboilerplate.com/Pages/Documents/Startup-Configuration">http://www.aspnetboilerplate.com/Pages/ ... figuration</a>
I suggest you to create a new topic (in this forum) to discuss the features. We may consider it to implement in ABP's core framework or in a seperated module. Also, we can discuss some implementation details. What's your exact idea, how your client side javascript will be formatted. Will you create a code that generates screens from this metadata... and so on.
Hi,
If you are using multi-tenancy, first you should enable it. Then you can use UserManager's LoginAsync method to login. After login, you can use IAbpSession.TenantId to get current tenant's id. If you are not in host mode (when you don't provide tenancy name, you will be logged in as host) then TenantId will be null.
To resolve tenancy name, you can use any method including subdomain. Even a simple login form with tenancy name, user name and password. See <a class="postlink" href="https://github.com/aspnetboilerplate/module-zero/blob/master/sample/ModuleZeroSampleProject.Web/Controllers/AccountController.cs">https://github.com/aspnetboilerplate/mo ... troller.cs</a> for a sample of login operation.
I'm actively working on mutli-tenancy implementation. So, thing may change. I will document in detail when it will be stable.
Welcome to ASP.NET Boilerplate forum.
This forum is created to ask questions, to join discussions and request help on ASP.NET Boilerplate core framework.