InicioHazlo Tu MismoChronos, Un framework de desarrollo de aplicaciones MDI

Chronos, Un framework de desarrollo de aplicaciones MDI

Hazlo Tu Mismo12/26/2011



Buscando en la red encontré un framework de desarrollo de aplicaciones basado en el patron de diseño Model-View-ViewModel

desarrollo

Tesis


Me atrajo su simpleza (de diseño, por q por adentro es algo complicado), y ademas es bastante completo, al descargarlo tiene un documento adjunto de como usarlo para implementar nuestras propias aplicaciones pero aca les muestro como añadir una ventana

link: Chronos

una ves descargado instalamos la extencion Chronos.VisualStudio.Extensions.vsix, luego abrimos el proyecto y nos encontramos con la siguiente estructura en el explorador de soluciones.



en la carpeta Views del proyecto Chronos.Modules.Sample damos clic derecho -> agregar -> nuevo elemento y buscamos Chronos Workspace Window



una ves echo eso nos crea la siguiente pantalla basica



con el siguiente codigo por debajo

Chronos, Un framework de desarrollo de aplicaciones MDI

antes de modificar esto nos dirigimos al proyecto Chronos.Modules.Navigation mas especificamente a la clase NavigationRoutes.cs la cual luce de la siguiente forma



justo debajo de la linea:

public const string Companies = "Configuracion/Empresas";

agregamos la siguiente :

public const string Prueba = "Configuracion/Prueba";

esta linea es una constante que almacena la ruta de navegación

ahora volvemos a VentanaPrueba.xaml.cs donde agregamos dos usings

using Chronos.Modules.Navigation;
using Chronos.Modules.Sample.ViewModels;


luego cambiamos las lineas

[MapNavigationContent("WindowNavigationRoute"]
[DefineViewViewModel(typeof(VentanaPrueba), typeof(VentanaPruebaViewModel))]



por las siguientes

[MapNavigationContent(NavigationRoutes.Prueba)]
[DefineViewViewModel(typeof(VentanaPrueba), typeof(VentanaPruebaModel))]



si compilamos ahora nos salta el error:

Error 6 No se puede encontrar el tipo o el nombre de espacio de nombres 'VentanaPruebaViewModel' (¿falta una directiva using o una referencia de ensamblado?) C:UsersCarlosDownloadsChronosv2_0-Beta3-Src_NET4_0Chronosv2sourceModulesSampleViewsVentanaPrueba.xaml.cs 28 56 Chronos.Modules.Sample


lo que quiere decir que nos falta el ViewModel del proyecto, para eso nos dirigimos a la carpeta ViewModel damos clic derecho -> Agregar -> Nuevo Elemento

Tesis


lo que nos crea lo siguiente

framework


Ahí agregamos los siguientes usings

using System.ComponentModel;
using Chronos.Modules.Navigation;
using Chronos.Modules.Sample.Models;
using Chronos.Presentation.Core.Windows;


tambien la siguiente region

#region · Command Actions ·
protected override void OnInquiryAction(InquiryActionResult<PruebaEntity> result)
{} #endregion


y por ultimo cambiamos la linea:

public sealed class VentanaPruebaModel : WorkspaceViewModel<ModelClass>


por:

public sealed class VentanaPruebaModel : WorkspaceViewModel<PruebaEntity>


y eso es todo lo que hay que modificar en el ViewModel solo nos falta el Model o lo que muchos conocen como entidad, que no es mas que una clase común con unas pequeñas características, asi q nos dirigimos a la carpeta Models del proyecto Chronos.Modules.Sample y damos clic derecho -> agregar -> Nuevo Elemento, y escogemos clase, y le damos el nombre de PruebaEntity.
agregamos el siguiente using:

using System.ComponentModel;

y cambiamos la cabesera de la clase de:

class PruebaEntity


a:

class PruebaEntity : INotifyPropertyChanged, IDataErrorInfo


y por ultimo(ahora enserio) agregamos los siguientes metodos en sus respectivas regiones

#region · INotifyPropertyChanged Members ·
public event PropertyChangedEventHandler PropertyChanged;
#endregion
#region · IDataErrorInfo Members ·
public string Error
{ get { return null; }} public string this[string columnName]
{ get { return null; }} #endregion #region · ChangeTracking ·
protected virtual void OnPropertyChanged(String propertyName)
{ if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); }} #endregion


Con todo eso ya deberia compilar a la perfeccion. pero obiamente todavia no podemos acceder a nuestra ventana, para solucionar eso nos dirigimos al proyeccto principal Chronos al archivo App.xaml
y ubicamos el nodo

<nRoute:NavigationNode Title="Configuración general">
..
..
</nRoute:NavigationNode>


justo en medio en alguna parte añadimos la siguiente linea

<chronos:CommandSiteMapNode Title="Prueba" SiteArea="Configuracion" Url="Configuracion/Prueba" />


el parametro Url es el mismo q pusimos en el NavegationRoutes
ahora si ya corre y pueden acceder a la ventana, obviamente no hace nada, pero eso lo dejamos para otro dia
wpf

Datos archivados del Taringa! original
18puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

s
suazr🇦🇷
Usuario
Puntos0
Posts3
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.