Base solution for your next web application

Activities of "daws"

Thanks!

I've created an issue on their github to ask them about oracle; we'll see :)

<a class="postlink" href="https://github.com/jcachat/EntityFramework.DynamicFilters/issues/40">https://github.com/jcachat/EntityFramew ... /issues/40</a>

Jcachat helped us on this one !

He added the support of Oracle into his nuget. Abp-modulezero fully works now with oracle (EF code first, seed and test website)

<a class="postlink" href="https://github.com/jcachat/EntityFramework.DynamicFilters/issues/40">https://github.com/jcachat/EntityFramew ... /issues/40</a>

Answer

I think many users already discussed about that :) (i also want implement this function on my project)

Maybe have a look on :

  • [http://forum.aspnetboilerplate.com/viewtopic.php?f=3&t=168])
  • [http://forum.aspnetboilerplate.com/viewtopic.php?f=2&t=261])

Hey !

In the case where we can have both logged/Anonymous users and that I want to restrict from external ips;

I think the best way is :

  • an user call the website
  • main page is retrieved & contains the "public user" abpzero (if not logged)
  • any webapi call is marked as "[AbpAuthorize]"

Do you think this is a good idea to create one generic "public" user used by hundred/thousand of person ?

If yes, I see this way

public ActionResult Index()
        {
            if(...) // check if already logged in, otherwise login as "public user
            AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = true }, loginResult.Identity);

            return View("~/App/Main/views/index.cshtml");
        }

Indeed, AbpAuthorize works fine :)

I just misunderstood the doc ^^

Maybe adjust it's a good idea to clarify the doc :

  • AbpAuthorize <ins>for Application Service</ins>
  • AbpMvcAuthorize for MVC Controllers
  • AbpApiAuthorize for_<ins>regular (classic?)</ins>_Web API Controllers

Thks for your previous explaination:)

Hey GVB !

I understand your message; but I think it is a little bit aggressive.

ABP and zero module are free; hikalkan does his best to help us on the forum, in his free time . There is no obligation for him to help us on ABP & ABP module Zero. (I do not talk about ABPZero here)

Maybe that's not (yet) useful for his project to make authentication WebAPI and that's not a priority.

The community can also develop and improve the project on github since it's opensource.

And I join you; this could be a very interesting feature (WebAPI Authentification) if it's realistic :) (i'll search tomorrow about it)

Nevermind, if you implement something similar ; I might be interested :) ( And perhaps integrate it into ABP github ? )

Thks for the explaination regarding webapi & autorisation !

Indeed, your project using separated project looks interestring but a little bit more complex.

For the rest, I created a visio. Black : what's already done (default abp working process) <span style="color:#FF0000">Red : what I want to achieve. (forget about SignalR on schema)</span>

The main problem is how to inject data in "Cache in Memory" from a tcp service.

Is it possible to encapsulate all theses processes in one running IIS process ? (except the TCP/IP Server which is external of course)

I don't think so, due to the TCP service (explained in previous post)

  • if yes, any idea ?
  • if not ... what's the best solution ? split to a specific process (windows service) containing cache, specific WebAPI just for this DataLayer, TCP/IP client, SignalR hub ? (AngularJS connecting to these services)

Not related question to previous problem :

  • if I want to cache all retrieved Database datas from WebAPI calls (with same parameters), (knowing that DB data are not modified), is there something already conceived in ABP ? or should I implement custom repository with caches ? or put this cache in BusinessLayer ?

Great !

I successfully created a RealTimeManager (dll, specific module) which I can insert in ApplicationService (via constructor injection) And in PostInitialize Web Project via IIocResolver like you specified in your doc.

public override void PostInitialize()
        {
            using (var realtimeManager = IocManager.ResolveAsDisposable<RealTimeManager>())
            {
                realtimeManager.Object.SetValue(666666666);
            }
public class RealTimeManager : IRealTimeManager, ISingletonDependency

indeed, my process need to be connected to TCP 24h/24 365day/year, so i'll prevent IIS to sleep process.

thks for the big help !

I think that's not a best practice to inject a tcp listener 24h/24 without interruption in a IIS process; even if I successfuly did it like you said. (if I restart it each day, there can be a data loss)

I'll try the other practice, an Windows service containing tcp listener, WebAPI (specific port), & abp module zero integration.

for that, i struggle a little bit; i created a ConsoleApp with SelfAPI web host, which works fine. I try to integrate Abp into this project, but i can't get the WebAPI accessible from my browser.

I suppose that's because I need to inject routes into HttpSelfHostServer.

if it's that, do you know how to inject Dynamic routes from abp (DynamicApiControllerBuilder) into this config ? Thks !

using Abp;
using Abp.Application.Services;
using Abp.Modules;
using Abp.WebApi.Controllers.Dynamic.Builders;
using System;
using System.Reflection;
using System.Web.Http.SelfHost;

namespace ConsoleApplication3
{

    //#region AppService

    public interface IKartAppService : IApplicationService
    {
        int GetValue();
    }

    public class KartAppService : IKartAppService
    {
        public int GetValue()
        {
            return 5;
        }
    }

    //#endregion AppService


    public class Program
    {
        static void Main(string[] args)
        {
            using (var bootstrapper = new AbpBootstrapper())
            {
                bootstrapper.Initialize();

                var config = new HttpSelfHostConfiguration("http://localhost:8071");

                // TEST URL http://localhost:8071/api/services/test/kart/getValue
				
				// HOW TO inject Dynamic routes from abp (DynamicApiControllerBuilder) into this config ?
				
				                //config.Routes.MapHttpRoute(
                    //"API Default", "api/{controller}/{action}/{id}",
                    //new { id = RouteParameter.Optional });

                using (HttpSelfHostServer server = new HttpSelfHostServer(config))
                {
                    server.OpenAsync().Wait();
                    Console.WriteLine("Press Enter to quit.");
                    Console.ReadLine();
                }

            }
        }
    }

    public class TestAppModule : AbpModule
    {
        public override void Initialize()
        {
            IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAssembly());

            DynamicApiControllerBuilder
               .ForAll<IApplicationService>(Assembly.GetExecutingAssembly(), "test")
               .Build();
        }
    }
}

Indeed, TCP Server-Client communication must be fault-tolerant ;)

I already have implemented my own mecanism to retrieve data loss, based on a company logic. It's a custom mecanism; since tcp server can be from all over the world with shitty connections sometimes (asia -> EU). (FYI, each tcp server write its own sent flux in local files. I never loss data; if the flux is shut down, I can retrieve local files)

I could integrate this mecanism in my 1st solution (tcp client in IIS), but if it avoid me to call this mecanism each days (thks to a Windows service) ; i'll do it, for reliability purposes.

I had a look on RabbitMQ, quite interesting Framework.

Showing 1 to 10 of 83 entries