Plain Concepts en el lanzamiento oficial Visual Studio 2013 en New York! MyCompany Apps!

Hoy, 13 de noviembre, se ha realizado el evento oficial de lanzamiento de Visual Studio 2013 en New York, el cuál se ha retransmitido de forma virtual para todo el mundo…evento interesante, con grandes novedades, el cuál también me ha tenido ocupado durante los últimos meses…y que me ha hecho visitar también por primera vez New York! Bonita ciudad.

Desde Plain Concepts hemos tenido la suerte de poder colaborar por segundo año consecutivo en el evento realizando las aplicaciones y presentaciones que se han utilizado durante el evento.  Que gente como Scott Guthrie, Scott Hanselman, Jay Schmelzer o Somasegar las han utilizado es motivo de orgullo y  lo mejor es que muchos otros empleados de Microsoft y partners de todo el mundo las usarán a partir de ahora.

Es un gran orgullo como equipo el haber realizado este trabajo, así como un gran reto al que nos hemos tenido que enfrentar, ya que llevaos trabajando en desde las primeras previews en las cuales documentación era excasa o inexistente. ¡Mola!

La aplicación que hemos realizado se llama MyCompany, y al igual que el año pasado se encuentra disponible para descarga. MyCompany simula ser una suite de productos que una empresa puede comercializar de forma individual o colectiva; vacaciones, viajes, gastos, recursos humanos y visitas.

Descargar MyCompany

03_TeamTravelList

En este caso queríamos intentar simular una suite de producto realizados de forma independiente por diferentes equipos dentro de una misma empresa, que posteriormente es capaz de ofrecer estos productos en un entorno aaS. Son productos desacoplados pero a su vez son capaces de funcionar de manera unificada, todos securizados con Windows Azure Active Directory y con comunicación través de Service Bus.

A nivel tecnológico se utilizan casi todas las tecnologías que os podréis encontrar con Visual Studio 2013 junto con sus novedades; EF 6, WebAPI 2, OData, OWIN, MVC5, BootStrap, Azure, WAAD, Windows Store, WPF, Windows Phone…lo que queráis, así que si estáis interesados en alguna tecnología o queréis hacer demos y pruebas con ellas, os animo a descargaros el código y probar la aplicación!

Como no, todo el desarrollo de la aplicación ha sido desarrollado con metodología Scrum con TFS Online y empleando todas las herramientas que ésta ofrece; plantillas metodológica de Scrum, workItems, métricas, integración continua, pruebas unitarias, feedback manager, automatización de tests funcionales etc…Este aspecto fue uno de los más importante, ya que aunque se trataba de una demo y los tiempos eran muy ajustados, tanto el código fuente como el proceso utilizado durante el mismo era igual de importantes…muchos de TFS online enseñados en el lanzamiento eran reales!

06_Burndown

Como plataforma de despliegue se ha empleado Windows Azure Azure WebSites y Windows Azure Cloud Services para desplegar las aplicaciones Web y SQL Database para almacenar la información…por supuesto, usando continous deployment desde TFS Online.

05_Deploy

Aquí os dejo una tabla resumen de las diferentes tecnologías empleadas, así como en qué producto de la suite podéis encontrar su utilización. Os animo a descargarla, usarla y cómo no, a decirme qué podríamos haber hecho mejor!

Services technologies

 

Staff

Expenses

Visitors

Travel

Vacation

ASP.NET Web API 2

 

X

X

X

X

Attribute Routes

 

X

X

X

X

CORS

 

X

 

 

 

OWIN-Katana

X

X

X

X

X

OWIN self-hosting

 

X

 

 

 

Web API OData

 

 

 

 

X

LightSwitch OData Services

X

 

 

 

 

SignalR 2.0

X

 

X

X

X

Entity Framework 6

 

X

X

X

X

Email notification

 

 

 

X

X

Windows Azure Service Bus

X

X

X

X

X

 

Web Application technologies

 

Staff

Expenses

Visitors

Travel

Vacation

ASP.NET MVC 5

 

 

X

X

X

SPA Web application

 

 

X

X

X

Durandal

 

 

X

X

X

Knockout.js

 

 

X

X

X

Angular.js

 

 

 

 

X

ASP.NET Scaffolding

 

 

X

 

 

Web Mobile View

 

 

 

X

 

JQuery Mobile

 

X

 

 

 

Bootstrap

 

 

X

 

 

LightSwitch Web Application

X

 

 

 

 

Office 365 Cloud Business Application

X

 

 

 

 

App for SharePoint

 

 

 

 

X

App for Office 365

 

 

 

 

X

Security technologies

 

Staff

Expenses

Visitors

Travel

Vacation

Windows Azure Active Directory

 

X

X

X

X

ASP.NET Identity

X

 

X

 

 

SharePoint integrated security

X

 

 

 

X

Windows Apps technologies

 

Staff

Expenses

Visitors

Travel

Vacation

Windows 8.1 Store C#/XAML

 

X

X

 

 

Windows 8.1 Store HTML/JS

 

X

 

 

 

Windows 8.1 Push notifications

 

X

 

 

 

NFC communication

 

 

X

 

 

Windows Phone C#/XAML

 

X

 

 

 

Windows Phone Push notifications

 

X

 

 

 

.NET WPF

 

 

 

X

 

 

Office 365 technologies

 

Staff

Expenses

Visitors

Travel

Vacation

Office 365 Cloud Business Application (aka. LightSwitch)

X

 

 

 

 

App for SharePoint – ASP.NET MVC

 

 

 

 

X

App for SharePoint – HTML/JS

X

 

 

 

 

App for SharePoint – BCS

X

 

 

 

 

App for Office 365 – Mail app

 

 

 

 

X

 

Y aquí, algunos pantallazos para abriros del interés….

 01_MainPage

02_VisitorInfo

04_Request

 

03_TeamExpenses

04_Employees

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

7 comentarios en “Plain Concepts en el lanzamiento oficial Visual Studio 2013 en New York! MyCompany Apps!

  1. Ha sido un trabajo espectacular, la verdad, mucho curre los que trabajamos en plainconcepts nos hemos pegado pero, el resultado habla por si solo, mi más sincero GRACIAS a todos los que habéis puesto algo en este trabajo, que habéis sido varios..

    Unai

  2. Impresionante!!!!, por cierto, la rubia de la foto que trabaja, en Madrid, Bilbao o Seattle??, porque no la recuerdo de ningún evento… así no me estraña que trabajéis como lo hacéis…

  3. Enhorabuena!!!.

    Simplemente un comentario. He visto la parte de angularjs que a la postre es la que me interesa.

    Y solo me queda un comentario, si este es vuestro concepto de #angularjs, mejor que nadie lo utilice.

    Y explico porque.

    1. Delegáis responsabilidades absurdas en los controladores cuando todo eso se puede hacer con una directiva. Me explico la lógica de mvc la estáis llevando al cliente y si esto es estar con la moda me parece una mala solución

    2. Definir Modelos para que? Si estamos hablando de algo dinaminco. En mi pueblo decian una cosa que te protejas de lo que te metan no de lo que sale.

    3. Si quiero globalizar esta app como lo hago?

    4. Ese datajs es la solución actual a odata? Simplemente con ver esto se me ponen los pelos de punta var activeXObject = function (progId)

    Mis conclusiones son sencillas, queremos meter angular con calzador pues esta no es la solucion:)

    De todas formas lo dicho Enhorabuena!!! y buen trabajo!!!

  4. Hola Pedro,

    Gracias por tus comentarios, los revisaré y contestaré con calma.

    De todas maneras, comentarte que la aplicación NO es una aplicación de referencia, es una aplicación de demo dónde el objetivo principal es la demostración de tecnología y funcionamiento dentro de Visual Studio, cosa que habrás visto por la cantidad de diferentes tecnologías que hemos usado, cuando podríamos haberlo hecho con menos.

    Por ejemplo, el tema de la globalización no era un requisito de la aplicación, así que es decisión explícita no soportarlo.

    datajs, breeze, son diferentes frameworks JavaScript para trabajar con servicios OData, puedes usar el que más rabia te de o simplemente hacerte tus llamadas OData a pelo, a gusto del consumidor.

    Con OData mucha lógica que podría escribirse en servidor se lleva al cliente éste tiene la potencia y la lógica claro…es bueno o es malo? Depende del escenario, ten en cuenta que son apps de ejemplo con funcionalidades básicas. Con OData el cliente si o si siempre hará muchas más cosas. Si vienes otros módulos verías otros paradigmas que podrían haberse usado aquí.

    Un saludo,

  5. Hola Ibon,

    La pregunta que se tiene que hacer Micro y no vosotros es si esta app no va a servir como referencia.

    Ya tenemos ejemplos del pasado que nos han hecho llorar:)

    Lo de la globalización no es requisito, pero tener las vistas en html y no en #razor pude confundir y cuando llevas 200 que haces?

    datajs no se necesita para trabajar con #angularjs si hay que consumir OData por h….s mas vale que micro copie de aquí https://developers.google.com/drive/v2/reference/files/list

    Mira detenidamente el campo Fields y el helper que tienes a la derecha “Use Fields Editor”. Eso es hacer algo en condiciones desde mi punto de vista y creo que también desde el tuyo.

    No es mi objetivo descatalogar ni tirar por tierra vuestro trabajo, que me consta que esta bien hecho. Lo que si es mi objetivo es decir no utilices nunca cosas como esta que te pueden hacer llorar.

    La culpa es vuestra nooo!!! . La culpa es siempre del que llega tarde y dando los últimos coletazos sin sentido.

    Una de las cosas que más agradezco de esta vida es el tiempo que pase con vosotros(aprendí un poco de JavaScript) y sobre todo mi cambio de visión hacia lo que puede o no puede ser. Y esas tecnologías están verdes como la cebolla y me da lo mismo que estén presentes desde hace muchos años. Están Verdes!!!

    Yo no necesito el EDM en el cliente para ejecutar OData y si es así no quiero breeze, por ahora.

  6. Hola,

    Si quieres apps de referencia puedes mirar en Pattern & Practices, todo lo que hay en MSDN Samples son eso, ejemplos, no se pueden tomar como referencia de nada.

    Un saludo,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *