skcratch Posted September 18, 2009 at 03:51 PM Report Share #287629 Posted September 18, 2009 at 03:51 PM Viva! Neste momento, estou a desenvolver uma aplicação cujo deploy deverá ser feito em muitos locais distintos, com as suas especificidades próprias. No entanto, algumas das configurações que serão guardadas neste fase no ficheiro web.config da aplicação, poderão ter que ser alteradas no futuro. Sendo assim, foi fornecida uma interface ao utilizador da aplicação, para que possa efectuar as referidas alterações. O método que estou a utilizar neste momento, é a seguir apresentado: protected void EditConfigButton(string _key, string _value) { Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/Projecto"); AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings"); //Edit if (objAppsettings != null) { objAppsettings.Settings[_key].Value = _value; objConfig.Save(ConfigurationSaveMode.Full); } } Basicamente, este método, dado uma determinada chave, actualiza o valor correspondente. No entanto, este método é invocado individualmente para cada entrada do ficheiro web.config que seja passível de ser editada. Sendo assim, o processo torna-se lento, já que o número de entradas é bastante elevado. Por outro lado, na interface referida anteriormente, o controlo TextBox onde o utilizador pode inserir o novo valor, é lido de forma individual, sendo um exemplo fornecido a seguir: private string valorTeste = WebConfigurationManager.AppSettings["chaveTeste"]; Mais uma vez, como são muitas entradas, este processo é muito lento na inicialização. Como possível melhoria, estava a pensar fazer o load do web.config para memória e fazer a leitura/escrita quando necessário. Acham que desta forma poderia ter um aumento de performance? Grato desde já pela ajuda, Cumps! 😄 P.S. -> Desculpem o tópico tão longo! 😛 Link to comment Share on other sites More sharing options...
bruno1234 Posted September 18, 2009 at 07:06 PM Report Share #287681 Posted September 18, 2009 at 07:06 PM A modificação do web.config se tem mesmo q ser por uma aplicação, deve ter uma página web (ou web form, como preferires) propria para a sua edição. Quando acederes a essa página, aí sim, podes carregar tudo para memória. No entanto, a performance da edição desse ficheiro não é mto importante, pq n é uma coisa para andar a mexer com frequencia. Mas na minha opinião, o web.config n devia ser alterado por utilizadores através de uma aplicação, mas sim por pessoas com as competencias técnicas necessárias. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
skcratch Posted September 21, 2009 at 10:07 AM Author Report Share #287990 Posted September 21, 2009 at 10:07 AM Viva! Compreendo o que queres dizer mas existem certas parametrizações que julgo que devem estar no web.config e que fazem sentido que seja o administrador da aplicação a poder alterar. E sim, a performance é algo que não fundamental neste caso em particular. Se calhar vou optar por manter a abordagem inicial. Obrigado pela ajuda! Cumps! 😄 Link to comment Share on other sites More sharing options...
bruno1234 Posted September 21, 2009 at 08:35 PM Report Share #288051 Posted September 21, 2009 at 08:35 PM Antes da edição do web.config, convém fazeres sempre um backup do original. Só se toda a edição correr bem é q fazes a substituição. Podes adicionar uma data ao nome do ficheiro, assim manténs backups das actualizações. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
skcratch Posted September 23, 2009 at 01:10 PM Author Report Share #288284 Posted September 23, 2009 at 01:10 PM Viva! No plano ideal, esse controlo de versões (se assim se pode dizer), deveria ser feito programaticamente, certo? Cumps! 🙂 Link to comment Share on other sites More sharing options...
bruno1234 Posted September 23, 2009 at 07:13 PM Report Share #288370 Posted September 23, 2009 at 07:13 PM Sim. Matraquilhos para Android. Gratuito na Play Store. https://play.google.com/store/apps/details?id=pt.bca.matraquilhos Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now