Showing posts with label MICROSOFT. Show all posts
Showing posts with label MICROSOFT. Show all posts
Friday, June 29, 2007
Acropolis CTP1
Excelente proyecto de Microsoft, ya se me hacia mucho trabajo usar su System.AddIn o reflextion para cargar los Parts y crear interfaces aunque con los Elements de XAML es un placer, Acropolis automatiza todo ese proceso en un solo Framework y con el diseñador integrado mas todavia. Lo que desconozco aun es si va a venir con VS 2008 ya que le vienen quitando cosas al "Orcas" al igual que al vista(Entity Framework por ejemplo) para traerlo con SQL Server 2008. Bueno, hay cosas que desaparecen de los proyectos y no vuelven.. como el ObjectSpaces o el WINFS que por cierto ZFS de Sun ha logrado lo que ellos querian jejeje.
Exposing a Workflow as a WCF Service in Visual Studio 2008 beta 1 (Step by step)
Impresionante demostracion.
Etiquetas:
DOTNET,
MICROSOFT,
Visual Studio 2008
Sunday, June 17, 2007
Windows Genuine en Ubuntu
Windows Genuine Validation funciona a la perfeccion en Linux. Me pregunto si la gente de Wine lo hace a proposito... hasta el momento es la cosa mas insolita de Microsoft que he visto despues Ballmer decir grocerias a Google y Microsoft amenazar a usuarios de Linux .
Wednesday, May 30, 2007
Microsoft Surface
Microsoft Surface me parece la cosa mas inutil del mundo y vere que tan util es cuando lo tenga en mis manos.
Tuesday, May 15, 2007
Steve Ballmer es una Mierda
"Fucking Eric Schmidt is a fucking pussy"
No tengo mas que decir, leanlo ustedes mismos.
Es una verguenza esto.
Friday, January 26, 2007
C++/CLI 2.0 Basics - Parte I



using namespace System;
void main(void)
{
Console::WriteLine("Hola mundo desde C++/CLI");
}
2) Compilamos usando el compilador C++/CLI 2.0. El nombre del compilador es "cl":
cl Hello.cpp /clr:safe
NOTA: No omita el argumento "/clr:safe", si lo omite el compilador no reconocera parte del codigo. El argumento dado le dice al compilador que se compilara con dependencia al .NET Framework y la ejecucion de codigo es segura. Mas adelante se explicara la diferencia entre el codigo seguro y el que no lo es.
3) Ejecutamos la aplicacion.
Hello.cpp
using System.Collections.Generics;
C++/CLI:
using namespace System::Collections::Generics;
Visual Basic:
imports System.Collections.Generics
En Visual Basic y en C# el operador "."(punto) se utiliza para separar namespaces y clases al hacer referencia a clases, metodos, constantes, enumeraciones,variables/propiedades/eventos estaticos. En C++/CLI, el operador "::"(dos puntos) se utiliza para todos estos fines antes mencionados mientras que el uso del operador "." es aplicado a ciertas referencias a objetos que seran explicadas en otro articulo que publicare.
Aqui tenemos un ejemplo de como se invoca al metodo estatico "Exists" en la clase "System.IO.File":
C#
System.IO.File.Exists(..);
C++/CLI:
System::IO::File::Exists(..);
Visual Basic:
System.IO.File.Exists(..);
Aqui tenemos otro ejemplo al usar una enumeracion en los tres lenguages:
C#
System.DayOfWeek.Friday
C++/CLI:
System::DayOfWeek::Friday
Visual Basic:
System.DayOfWeek.Friday
Entendiendo la declaracion de variables en C++/CLI.
Para usar variables en C++/CLI, minimo deben declararse. Para declarar variables de forma simple se usa el nombre de el tipo de datos seguido del nombre de la variable. Por ejemplo:
int edad;
edad = 21;
A diferencias de otras versiones de C++, C++/CLI permite declarar variables en todo ambito de codigo(fuera o dentro de clases o metodos).
Al igual que C#, se pueden declarar multiples variables de un mismo tipo de dato en una sola linea de codigo:
int edadUsted,edadMia,edadOtros;
A diferencia de Managed C++(la version anterior a CLI), en CLI existen 2 tipos de datos: Handle y Pointer.
Un "handle" requiere un carat(^) en frente de la variable o el tipo de dato y un puntero requiere un asterisco(*).
TIP: Si al igual que yo tiene la mala suerte de tener un teclado en español, no encontrara el simbolo "^" directamente en el teclado, el codigo ASCII para el simbolo es "ALT+94".
Por ejemplo:
String^ miHandle;
String * miPointer;
Basicamente la diferencias son las siguientes:
- Handle: Microsoft .NET Garbage Collector SI interviene en la limpieza del objeto, por lo tanto es alojado en una parte de la memoria llamada "Managed Heap","CLR Heap" (o "monton administrado") en el cual el Garbage Collector administra el tiempo de vida de cada objeto. Este tipo de manejo de memoria se conoce como "Administracion de memoria verificable".
- Pointer: Microsoft .NET Garbage Collector NO interviene en la limpieza del objeto, por lo tanto es alojado en una parte de la memoria llamada "C Runtime Heap", "CRT Heap" ( o "monton del tiempo de ejecucion de C") en el cual la limpieza de cada objeto es responsabilidad del programador. El programador tiene a su disposicion la palabra "delete" para eliminar el objeto cuando ya no es utilizado. Este tipo de manejo de memoria se conoce como "Administracion de memoria inverificable".
- Para compilar una aplicacion con codigo seguro se usa la opcion de compilacion: "/clr:safe".
- Para compilar una aplicacion con codigo inseguro se usa la opcion de compilacion: "/clr".
Subscribe to:
Posts (Atom)