Monthly Archives: August 2007

Welcome

Welcome: “Microsoft Exchange Server 2007 Trial “

Compiling C# code from the command line

It”s well known that the C# compiler is the csc.exe and that you can find it on the installation folder of the .NET platform. What i”ve seen in these last days (specially since i”ve started my in-depth study of the C# language and have started discussing it with some collegues and friends) is that many people use the C# compiler and really don”t know what it does or what are the available options you can use when you compile a C# app.

For instance, i was astonished with the number of people who don”t know what the following line does:

csc /target:exe /reference:mscorlib.dll /out:HelloWorld.exe  HelloWorld.cs

Maybe this is a classical example of why VS rottens the mind (and no, i won”t stop using VS – specially now, that I”m a proud owner of a resharper”s lic:),,)?  

Even among those that know what it does (btw, it”s compiling the HelloWorld.cs file into an exe called HelloWorld.exe and saying that it needs the “all mighty” mscordlib.dll to do that), many don”t really understand why you can reduce it simply to this (besides saying that it”s magical):

csc HelloWorld.cs

So i thought I should write something about this (even though that i”m positive that there”s already lots and lots of info out there). Ok, so why do the previous 2 instructions produce similar results? Easy:

  • by default, the csc.exe will  always generate an executable. since i was trying to built an exe, then i can just remove the /target:exe from the command;
  • mscorlib.dll is a special assembly since it contains several of the basic (or primitive) types that you use when you build a C# program. The C# compiler knows this and will always add a reference to this assembly. Notice that this might not be what you want (for instance, when you”re building a silverlight application, you need to compile your cs files agains Silverlight”s mscorlib.dll and not against the one that is installed with the full .NET version). In these scenarios, you can cancel the default behavior of the compiler by passing the /nostdlib parameter;
  • since i wanted the assembly to have the same name as the file that i was compiling, then it”s safe to discard the /out parameter. When you do that (ie, when there”s no /out parameter), the compiler will name the final assembly with the name of the file that has the Main method (exe) or the name of the first cs file you”re compiling (dll).

Not too complicated, right? More dificult is understanding why you can compile an app that uses a type defined inside the System.Data.dll assembly without passing a reference to that assembly during compilation. well, it happens that the csc.exe can also receive a response file. A response file is simply a text file where you define a switch per line. For instance, if i wanted, i could transform my first example in a helloworld.rsp (notice the extension) file that would look like this:

/target:exe
/referente:mscorlib.dll
/out:HelloWorld.exe

You can make the compiler to use these settings by using the /@ switch:

csc @helloworld.rsp helloworld.cs

If you want, you can have several response files. One important thing: the C# compiler will always load any csc.rsp response files it finds. This means that you can simply rename the previous file to csc.rsp and the compiler will pick it up automatically, making the @ switch disposable(do keep in mind that in  my example you really don”t need a response file since the parameters i”m passing are also automatically used  by the compiler, as explained in the previous paragraphs).

Ok, interesting right? but still doesn”t answer my last question. It happens that the compiler currently searches for rsp files in two places: current working folder and the installation folder of the compiler. If you open that folder, then you”ll see that it has a csc.rsp file with references to several of the assemblies installed by the .NET (including the assembly i mentioned in the previous example). This file is special and is always picked up by the compiler. That”s why you can do what i was saying 2 or 3 paragraphs above…

One important gotcha: the csc.rsp file will always be loaded by the compiler. If you don”t want that, then pass the /noconfig switch to the C# compiler.

btw, do notice that you can add or remove assemblies, though i see no reason for removing any of the list. Some people think that by removing assemblies they”re improving the performance of the new compiled assembly. This is not true because the compiler is smart enough to only add references to types that are used in your C# code files.

Finally, another question that pops up quite frequently, is where do those assemblies come from? for instance, what happens when you have several versions of the .NET platform installed. To answer this, we must know the places where the C# compiler searches for the dll:

  1. working directory
  2. directory that contains the csc file (notice that inside this directory you”ll find copies of the dlls that exist on the GAC.)
  3. folders passed through the /lib switch
  4. folders defined on the LIB ambient variable

As always (or should i say, as amost always?) msdn has a good reference on the parameters you can pass to the compiler. Reading them garantees that you”re aware of all the options you can use when you compile your program. Don”t stop using VS (or another cool editor). However, do know what you”re doing!

LINQPad: cool!

I was really looking for this sort of tool and I”ve found it via Scott Gu”s post. Awesome!

C#: where does the name come from?

This isn”t really a technical post, so you might want to skip it if you”re too busy :,,)

As I”ve said, i”ve been spending some time looking at C# and how it produces code that runs on the CLR. One of the things that has always puzzled me is why C# is called C# :) Until now, I”ve heard one or two interesting theories. The first is old (at least, I recall having heard about it in the past): since C# is supposed to be a better C++, then some see the # symbol as being composed by four + symbols.

The second one says that # is really the number sign that is used for a musical sharp, implying that he current sound is half step above the other (which really means that C# would above the other languages).

Btw, I ”ve found both these theories presented on the C# professional book (chapter 1 is available online here).

And you? what do you think? have you heard any better explanation for its name?

Enabling anonymous access in SharePoint 2007 – Fear and Loathing

Enabling anonymous access in SharePoint 3.0 and 2007 – Fear and Loathing

TestMatrix Inline Test Running

TestMatrix has a great feature that allows a user to run a test while in the Visual Studio environment.  By right-clicking in a file, on the file, a folder, or using the Test Explorer tool window, a developer can run a unit test and see the color-coded results in the test file (through a highlighting in the left sidebar) or in the test explorer.


What makes it nice is that a user can run a unit test and view the results directly in the open window.  I like being able to execute tests at a folder level, because I am often working in a specific folder at one time, working on the code and the tests.  Plus, the visualization makes it more clear, and it has an icon that appears in the side that shows the error.


Furthermore, code coverage icons state what code wasn’t hit, and what code took the longest to run.

ASP.NET AJAX: Alessandro''s book is out

Alessandro Gallo”s  (aka Garbin) book ASP.NET AJAX in Action is out and you can order it from here. I”ve met Alessandro on MSN during the early days of ATLAS and we”ve had several cool discussions about the platform. I”m sure he has done a fine job with this book. So, if you”re looking for a good english book on AJAX, then go ahead and check this one here (btw, if you prefer to read in portuguese, then don”t forget that i”ve also writen a book for  FCA  – sorry for the shameless publicity, but i just couldn”t resist :) ,,).

Back at full speed

After a three weeks vacations, i”m back at full speed and I”ve decided that this month will be the “C# month”. what this means is that during this month (and the next) I”ll be studying the C# language in depth and i”ll try to share one or two things here.

i”m not sure about you, but i”m still not used to the end of vacations…

‘Unexpected error ocurred’ en SDK de MOSS

Desde hace unas semanas me encuentro desarrollando una peque√Īa utilidad para generar los ficheros de configuraci√≥n del Business Data Catalog (aka BDC). Esta utilidad la desarrollo ‘por vicio’ durante los mediod√≠as (ya se sabe que los desarrolladores solemos hacer estas cosas).

As√≠ que cuando he visto que Microsoft ha liberado el nuevo SDK de MOSS, y este incluye un editor me he dicho “Hombre, vamos a instalarlo, a ver si puedo sacar alguna idea”.

Sin embargo la primera en la frente: No se qu√© demonios he hecho pero he instalado una versi√≥n anterior del SDK y no encontraba el editor por ning√ļn lado. Al cabo de un buen rato (y de reirnos un poco con Jorge Serrano) me he bajado la versi√≥n nueva, y cuando empiezo a instalar el editor y est√° llegando al final… ¬°otro problema!

Afortunadamente, esta vez no ha sido por mi culpa ya que el mensaje es bastante claro:

“Unexpected Error has occurred. Error is ‘Create failed for User ‘BUILTINUsers…….”

Después de observarlo un poco he pensado que es normal que no pueda crear el login, ya que BUILTINUsers sólo existe en las versiones de Windows en Inglés. En mi caso (tengo la versión Spanish) tengo un grupo BUILTINUsuarios y supongo que cada lenguaje tendrá su versión traducida.

He probado un par de veces m√°s en distintas m√°quinas (XP y 2003) y en todas pasa lo mismo, as√≠ que he montado una m√°quina virtual Windows 2003 English, y f√≠jate tu… ¬°a la primera!

Sin embargo, vaya gol!!! Jorge ya ha reportado esto al equipo, pero creo que es de chiste… :-D

En fin, ahora que ya lo tengo instalado voy a ver que tal pinta este editor…

Os dejo un par de screenshots de la utilidad (que seguramente ahora ya no ser√° de mucha utilidad :-P)

Saludos y buen finde!!!


** crossposting desde el blog de Lluís Franco en geeks.ms **

Viernes 24/08/2007

** Dedicado a mis ni√Īas, que son mi vida **

La Guardia Civil:

En la academia de cadetes de la guardia civil espa√Īola el jefe de reclutamiento entrevista a 3 aspirantes gallegos para probar sus habilidades como futuros detectives.

Le muestra al primer gallego una foto por 5 segundos y luego la esconde.
Este es su sospechoso, ¬ŅC√≥mo lo reconocer√≠a?

El gallego contesta:
Pues es muy fácil, lo cogería rápido porque sólo tiene un ojo.

El entrevistador contesta:
Bueno, es porque es una foto de perfil.

Algo frustrado por esa primera respuesta, se dirige al segundo gallego, le muestra la misma foto por 5 segundos y le pregunta:

Este es su sospechoso, ¬ŅC√≥mo lo reconocer√≠a?

El segundo gallego se ríe socarronamente, mira al entrevistador y dice:
Es un juego de ni√Īos, co√Īo, que tiene una sola oreja.

El entrevistador se enfada y les dice:
¬ŅPues que pasa con vosotros?, por supuesto que tiene un ojo solamente y una sola oreja, porque es una foto de perfil, ¬ŅEsa es la mejor respuesta que pod√©is dar?

Ya muy frustrado a esta altura, se dirige al tercer gallego, le muestra la foto y le dice:
Este es su sospechoso, ¬ŅC√≥mo lo reconocer√≠a? Piense bien antes de contestar una estupidez.

El gallego mira intensamente la foto unos segundos y dictamina:
El sospechoso usa lentes de contacto.

El entrevistador queda sorprendido y sin palabras porque realmente él mismo no sabe si el sospechoso usa o no lentes de contacto.
Bueno, esa es una respuesta interesante. Espere unos minutos que reviso el expediente y ya vuelvo. Sale de la sala, va a su oficina, revisa el prontuario y al rato vuelve con una sonrisa radiante.
¬°Excelente! ¬°No lo puedo creer! ¬°Es correcto!, efectivamente el sospechoso usa lentes de contacto. ¬°Buen trabajo! ¬ŅC√≥mo pudo hacer una observaci√≥n tan astuta?

Fue fácil, contesta el gallego, no podría usar gafas porque sólo tiene un ojo y una oreja


El empujoncito que siempre nos hace falta a todos:

Un millonario promueve una fiesta en una de sus mansiones, y en determinado momento, pide silencio y la m√ļsica para, y dice, mirando hacia la piscina donde criaba cocodrilos australianos…… el que logre cruzarla y salir vivo al otro lado, ganar√° todos mis autos….

- ¬ŅAlguien se atreve?

Espantados, los invitados permanecen en silencio y el millonario insiste:

- El que se lance a la piscina, logre cruzarla y salir vivo al otro lado, ganar√° todos mis autos y mis aviones…. ¬ŅAlguien se atreve?

El silencio impera y una vez m√°s, ofrece:

- El que se lance a la piscina, logre cruzarla y salir vivo al otro lado, ganar√° todos mis autos, mis aviones y mis mansiones.

En ese momento, alguien salta a la piscina.

La escena es impresionante.

Una lucha intensa, el hombre se defiende como puede, agarra la boca de los cocodrilos con pies y manos, tuerce la cola de los reptiles…

GUAUUU MUCHA ADRENALIDA…

Mucha violencia y emoción. Parecía una película de ¡COCODRILO DUNDEE!

Despu√©s de algunos minutos de terror y p√°nico, sale el valiente hombre, lleno de ara√Īazos, moretones y casi muerto.

El millonario se aproxima, lo felicita y le pregunta:

- ¬ŅDonde quiere que le entregue los autos?

- Gracias pero no quiero sus autos.

Sorprendido, el millonario pregunta:

- Los aviones, ¬Ņdonde quiere que se los entregue?

- Gracias, pero no quiero sus aviones.

Extra√Īado por la reacci√≥n del hombre, el millonario pregunta:

- Y ¬Ņlas mansiones?

- Yo tengo una bella casa, no necesito de las suyas. Puede quedarse con ellas…. No quiero nada que sea suyo.

Impresionado, el millonario pregunta:

- Pero si Ud. no quiere nada de lo ofrecido, entonces… ¬Ņque es lo que quiere?

Y el hombre le respondió muy irritado:

- ¡Encontrar al hijo de la gran p*ta que me empujó a la piscina!

MORALEJA: SOMOS CAPACES DE REALIZAR MUCHAS COSAS QUE A VECES NI NOSOTROS MISMOS CREEMOS, PERO NECESITAMOS UN EMPUJONCITO Y EN CIERTOS CASOS… HASTA ALG√öN HIJO DE P*TA ES √öTIL EN NUESTRA VIDA.


Diario de una mujer. a dieta:

Querido Diario:

Hoy comenc√© a hacer dieta. Necesito perder 8 kg . El m√©dico me ha aconsejado escribir un diario donde tengo que anotar mi alimentaci√≥n y hablar de mi estado de √°nimo. Me siento de vuelta a la adolescencia pero estoy muy, muy entusiasmada con todo. Por m√°s que la dieta sea dolorosa, cuando consiga entrar en ese vestidito negro maravilloso, va a estar todo perfecto…

Primer día de dieta.

Un pedazo de queso blanco. Un taz√≥n de cereales sin az√ļcar. Mi humor est√° de maravilla. Me siento m√°s liviana. Un leve dolor de cabeza tal vez…

Segundo día de dieta.

Una ensaladita r√°pida. Algunas tostadas y un vaso de yogur. A√ļn me siento maravillosa. La cabeza me duele un poquito m√°s fuerte pero nada que una aspirina no pueda solucionar.

Tercer día de dieta.

Me despert√© de madrugada con un ruido extra√Īo… Cre√≠ que era un ladr√≥n, pero despu√©s de un tiempo me di cuenta de que era mi propio est√≥mago haciendo un ruido que daba miedo… Como hac√≠a calor, aprovech√© para tomarme un litro de t√©… Estuve meando el resto de la noche.
Anotación: No tomar nunca más té de manzanilla.

Cuarto día de dieta.

Estoy empezando a odiar la ensalada. Me siento como una vaca mascando pasto. Estoy algo irritada, pero creo que es el tiempo… Mi cabeza parece un tambor… Mi compa√Īera de trabajo comi√≥ una pizza en el almuerzo. ¬°¬°¬°Pero yo resist√≠!!!.
Anotaci√≥n: Odio a mi compa√Īera de trabajo.

Quinto día de dieta.

Juro por Dios que si vuelvo a ver un pedazo m√°s de queso blanco vomito!!!.
Mi almuerzo: una ensalada, que parec√≠a re√≠rse en mi cara…
Necesito calmarme y volver a concentrarme.

Sexto día de dieta.

¬°¬°¬°¬°¬°¬°Estoy muerta!!!!!!.
No dorm√≠ nada por la noche. Y lo poco que consegu√≠ so√Ī√© con un flan de vainilla que chorreaba caramelo l√≠quido. Creo que hoy matar√≠a por darle una mordida a un bocadillo de calamares o de lo que sea.

Séptimo día de dieta.

Fui al m√©dico. Adelgac√© 250 gramos .¬°¬°¬°Esto es una jodienda!!!. Toda la maldita semana comiendo pasto , que s√≥lo me falta mugir y ¬°¬°¬°s√≥lo he perdido 250 gramos !!! El m√©dico me explic√≥ que es normal. Que la mujer tarda m√°s en adelgazar. y m√°s a mi edad…
¬°¬°¬°El hijo de puta me ha llamado gorda y vieja!!!
Anotación: Buscar otro médico.

Octavo día de dieta.

Hoy fui despertada por un pollo asado, ¬°¬°¬°Lo juro!!! Estaba a los pies de la cama, bailando un can-can.
Anotaci√≥n: Mis compa√Īeros de trabajo est√°n empezando a mirarme raro…

Noveno día de dieta.

Hoy no fui a trabajar. El pollo asado me despert√≥ de nuevo, esta vez bailando la danza del vientre. Pas√© todo el d√≠a tumbada en el sof√° viendo la tele. Creo que existe un complot. Todos los canales pasaban recetas de cocina. Ense√Īaban a hacer tartas de frutas, maravillosas salsas.
Anotación: Comprar otro control remoto, en un arranque de furia, lo tiré por la ventana.

Décimo día de dieta.

Odio a todo el mundo !!!!!!!!!

Décimo primer día de dieta.

Le di una patada al perro de mi vecina. Grité como una loca.
El botones no entra m√°s a mi oficina y las secretarias se pegan a la pared cuando yo paso.

Décimo segundo día de dieta.

Sopa.
Anotación: Nunca más vuelvo a jugar al poker con el pollo asado. ¡¡¡Hace trampas!!!

Décimo tercero día de dieta.

La balanza no se mueve. ¡No se mueve!. ¡¡¡No perdí ni un mísero gramo!!!.
Empec√© a re√≠rme a carcajadas. El m√©dico, asustado, me sugiri√≥ un psic√≥logo. Creo que lleg√≥ a decir psiquiatra. ¬ŅSer√° porque lo amenac√© con un bistur√≠?
Anotaci√≥n: No vuelvo m√°s al m√©dico, el pollo cree que es un cantama√Īanas y un charlat√°n

Décimo cuarto día de dieta.

El pollo me present√≥ a unos amigos. El Sr. Lomo es muy buena gente, el Sr. Solomillo muy buen conversador y D√Īa. Tarta de frambuesas es una se√Īora muy dulce

Décimo quinto día de dieta.

Mat√© a Claudia Sh.!!!. La cort√© en pedacitos al igual que a todas las fotos de las modelos s√ļper flacas que ten√≠a en casa… Anotaci√≥n: El pollo y sus amigos est√°n mosqueados conmigo. Me com√≠ un pedazo del Sr. Pan. ¬°¬°¬°Pero fue en leg√≠tima defensa!!!, el me amenaz√≥ con un pedazo de salami.

Décimo sexto día.

¬°¬°¬°¬°¬°¬°¬°¬°¬°A LA MIERDA LA DIETA !!!!!!!!!
Me agarr√© un cabreo con el pollo porque me hizo trampas en el poker y me lo com√≠ junto con el Sr. Pan. Y de postre le ataqu√© a D√Īa. Tarta de Frambuesas, y estaba realmente dulce.


Mana-Mana:

Quien no recuerde esto es que no ha tenido una infancia digna:

[YouTube:G7nUazmAQQc]


Pink Army:

Otra animaci√≥n del creador de “Animator vs. animation”

http://alanbecker.deviantart.com/art/Pink-Army-33386848


Imágenes insólitas (By Nomeacuerdo :-P):

Mejor Escen√°rio Natural

Mejor Paisaje Urbano

Mejor disparo ‘on the fly’

Mejor Montaje

Mascota Más Fotogénica

Mejor Escultura de Arena

Mejor Pintura Urbana

Mejor Body Painting

Premio Mundo Animal

Accidente Más Fotogénico

Premio Especial

Buen finde a todos!!!

Recent Comments

ÔĽŅ