Templating tjeneste gjennomføring med barberhøvel

stemmer
2

Jeg ser til å utvikle et templat tjeneste som vil utnytte en ASP.NET er Razor for gjengivelse av maler og skriver utførte maler til DB (ADO.NET). Forespørselen om å generere en mal kan komme som REST forespørsel (men kan være noe annet, generelt rundt 10 parametere må være bestått) og applicaiton må være selv vert (så ASP.NET WebAPI på IIS er ikke et valg). Også det skal være i produksjon i løpet av en måned.

Jeg har smalere valget ned til egen vert WCF http tjeneste og ASP.NET vNext .

Er ASP.NET vNext for tiden i en tilstand som jeg kunne bruke det for en oppgave som sådan? Kan jeg bruke ADO.NET direkte eller gå gjennom EF? Er tehere noe godt alternativ til de? Hvorfor jeg lener mot HTTP selv hosting er også kravet til samtidighet og håndtering rundt 10 forespørsler på en gang.

Publisert på 13/11/2014 klokken 10:56
kilden bruker
På andre språk...                            


2 svar

stemmer
0

Ved tidspunktet for å stille et spørsmål har vi besluttet å gå med MVC 5 og Owin, i dag kan du enkelt gå med MVC 6 (ASP.NET 5 aka vNext).

Koden for en konsoll app vert med OWIN er ganske rett frem, som du vil se i mange tutorials:

    private static void Main()
    {
        try
        {
            string baseAddress = ConfigurationManager.AppSettings["ApiBaseAddress"]; 
            Log.Info("Listening on " + baseAddress);

            // Starts OWIN host 
            using (WebApp.Start<Startup>(url: baseAddress))
            {
                Console.ReadLine();
            }

            Log.Info("Host is being closed.");
        }
        catch (Exception exception)
        {
            Log.WriteLine(LogLevel.Fatal, "Error running service: " + exception.ToString());
            throw;
        }
    }

Der Startuper en klasse for OWIN midt-ware konfigurasjon. Også, normalt du ville vert dette som en Windows-tjeneste i stedet.

Jeg kan også dele en kontroller implementering som kunne brukes til templating service. Det forventer JSON data i POST legeme med TemplateEncodedeiendom på roten av JSON- gjenstand, som inneholder base64-kodet streng av en barberhøvel tempalte. Dette barberhøvel symbolmal blir så gjengitt fra de andre verdiene som er gitt i forespørselen JSON-. For gjengivelse av en barberhøvel mal, RazorEngine brukes.

    [HttpPost]
    public async Task<IHttpActionResult> Post()
    {
        dynamic model = null;
        string request = string.Empty;

        try
        {
            request = await Request.Content.ReadAsStringAsync();

            model = JsonConvert.DeserializeObject<ExpandoObject>(request);
            model.Template = RequestHelper.FromBase64(model.TemplateEncoded);

            // here you could do some validation, if required.

            var razorResult = Razor.Parse(model.Template, model);
            var result = HttpUtility.HtmlDecode(razorResult);

            return Ok(result);
        }
        catch (Exception ex)
        {
            Log.Error(request, model == null ? "ERROR: template was not converted from base64 encoded string." : model.Template, ex);
            return InternalServerError(ex);
        }
    } 
Svarte 20/09/2015 kl. 12:49
kilden bruker

stemmer
0

Jeg beklager, men spørsmålet ditt og konklusjoner er litt uklart for meg. WebAPI og MVC vert i IIS er fullt i stand til samtidighet og håndtering mange forespørsel om gangen.

Ditt valg av datatilgang rammeverk (ADO.NET versus Entity Framework) har også noe å gjøre med web hosting del av løsningen; kan du bruke enten i noen form for program, bruker noen fiendtlig miljø.

Så svaret er: bruk rammer du er kjent med hvis hastigheten på utviklingen er din største bekymring, da det tar bort læringskurve.

Svarte 13/11/2014 kl. 11:13
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more