Archivo

Posts Tagged ‘nuget’

Error creando controller en visual 2017

marzo 26, 2017 Deja un comentario

Cuando creamos un proyecto tipo Api en visual 2017 puede ocurrir un error por el diseñador

Untitlednetcorecontrollererrornetcorecontrollererror2

Para solucionar este inconveniente simplimente agregamos al archivo del proyecto .csproj los siguientes paquetes:

<PackageReference Include=”Microsoft.VisualStudio.Web.CodeGeneration.Design” Version=”1.1.0-msbuild3-final” PrivateAssets=”All” />

<ItemGroup>
<DotNetCliToolReference Include=”Microsoft.EntityFrameworkCore.Tools.DotNet” Version=”1.0.0-msbuild3-final” />
<DotNetCliToolReference Include=”Microsoft.Extensions.SecretManager.Tools” Version=”1.0.0-msbuild3-final” />
<DotNetCliToolReference Include=”Microsoft.VisualStudio.Web.CodeGeneration.Tools” Version=”1.0.0-msbuild3-final” />
</ItemGroup>

 

Rereferencia:

https://developercommunity.visualstudio.com/content/problem/5964/code-generator-error-creating-controller.html

Anuncios

Crear un administrador de cache usando cacheadapter

octubre 23, 2015 1 comentario

Utilizar cache en nuestra Api o en nuestro componentes de datos es muy importante ya que es muy común que existan cientos de datos que son consultados constantemente por el usuario y que no se modifican mucho en el tiempo entonces para poder descongestionar la base de datos podemos usar un servidor de cache que responde mas rápido a cualquier requerimiento de datos.

cacheadapter es un nuget en . net (https://www.nuget.org/packages/Glav.CacheAdapter/)  que nos permite administrar de manera fácil y distintos modos para administrar el cache:

1. In Memory cache (config setting=”memory”)
2. ASP.NET web cache (config setting=”web”)
3. Distributed AppFabric cache. (config setting=”AppFabric”)
4. Distributed memcached cache. (config setting=”memcached”)

 

Invocando entonces  nuestro nuget podemos crear un método para guardar y otro para obtener información que se encuentre en Cache sin importar en que servidor se este guardando:

internal const int INTIME = 3;

/// <summary>
/// Get the data object with identifier
/// </summary>
/// <param name=”strKey”>identifier of the data</param>
/// <returns>return the data</returns>
public static object Get(string strKey)
{
var cacheProvider = AppServices.Cache;

var data = cacheProvider.Get<object>(strKey, DateTime.Now.AddSeconds(INTIME), () => { return null; });

return data;
}

/// <summary>
/// Set in the cache server the value
/// </summary>
/// <typeparam name=”T”>Type of data to Set</typeparam>
/// <param name=”strKey”>identifier of the data</param>
/// <param name=”obj”>object data</param>
/// <param name=”intTimeExpiry”>Time in seconds of Expiry data Defaul:86400 = one day</param>
/// <returns></returns>
public static bool Set<T>(string strKey, T obj, int intTimeExpiry = 86400)
{
try
{
var cacheProvider = AppServices.Cache;

cacheProvider.Add(strKey, DateTime.Now.AddSeconds(intTimeExpiry), obj, null);

return true;
}
catch (Exception)
{
return false;
}
}

 

En el siguiente Link les dejo el codigo donde pueden encontrar el ejemplo mas completo y ver el CacheManager que cree a partir de cacheAdapter espero les sirva:

https://onedrive.live.com/redir?resid=261445BD18D3146D%21121