Developer Tales


 

I’m working on a “SOA-Like” system, which lives and exchange data in the xml-envelope form which many of us knows as

   1: <Envelope>
   2:     <AuthData name="" pwd="" />
   3:     <ContextData name="" />
   4:     <Input>
   5:         <FirstNode />
   6:         <FirstNode />
   7:         <SecondNode />
   8:     </Input>
   9:     <Output>
  10:         <ThirdNode />
  11:         <FourthNode />
  12:         <FourthNode />
  13:     </Output>
  14: </Envelope>

I’m starting from an xsd schema which describes the envelope and each “Message” which will be enclosed in the “Input” part, then the operation-result message will be returned as a child of “Output” node. Until now everything could be fine, a standard Envelope, ESB-Message, or what else you want to name it, but a standard situation. But here my problems begins.

First of all, I cannot use a DataContract-fashion-class and the DataContractSerializer, because for the DataContract context it’s impossible to render an xml as above where child nodes are “variables” in the sense of I have a container, in my case the “Input” Object, which could have childs, maybe represented by a form of xmltype-anonymoustype array of objects, every time I can write a collection, an array in the form of:

   1: <Input>
   2:     <FirstNodeCollection>
   3:         <FirstNode />
   4:         <FirstNode />
   5:     </FirstNodeCollection>
   6: </Input>

in this way my objects hierarchy must be InputObject -> FirstNodeCollection -> FirtsNodeObject. I hate this way of representing the objects, but DataContract-fashion-classes and DataContractSerializer, could not produce a different “rendering”

Second, If I want to use the XmlSerializer instead of the DataContractSerializer, first I have to fill my classes of a lot of attributes, and even here, I can have some troubles, even if the only object which natively support the above representation is just the XmlSerializer.

Well, the XmlSerializer could help me, but the first thing which makes me hate it, is the fact that for each Type which it’ll represent, the XmlSerializer will generate a Temp assembly containing the ad-hoc serializer for that Type, and this is the thing which makes me really angry and hungry..of what?? of a normal, well driven, serialization API!

Personally I don’t know which makes Microsoft to choiche this kind of implementation about the DataContractSerializer, but I cannot believe there’s not an easy, more customizable way of doing it. Yes, someone could say me : “Hey, look at the IXmlSerializable interface” but this is a RAW implementation, this makes me think an Italian way to say, (..orrible translation..) “doing everything or doing nothing”, I try to explain it.. saying this I’m saying that Microsoft could makes a Monster, complicated over-rich API, or a simplest, it doesn’t know a “middle way” of doing things.

So, here I’m starting my provocation: why we cannot implement a simple new serialization API? maybe we could make in the beginning simple, and then let it grow and become more complicated! Maybe we could learn something from some JAVA implementation… I hope I can find anyone which wants to talk about, and maybe, start to think to implement something!

Ciao

Technorati Tag: ,
Advertisements

Hi!

..as what I said in my previous post, I do my job (even if I consider it no just a Job) with passion and happyness, even if lately some things makes me crazy and over stress.. But, now I like to share with all some good readings which i read in these days and more…

The first one it’s the Software by Rob Blog, I found it reading another great Blog I read because of sharing of concept of Developing with passion, the Blod of Jean-Paul S. Boodhoo. I really like these blogs because of what they say about our work of, first, developers.. Since when I started learning programming in Basic, I took this experience as a passion, I could say I do many things with passion, cause I consider the passion a great piece of LIFE, and my Life.

In my Job I like to put everyday all of my intentions and passion to let became the job a good place, to permit my colleagues to learn and me to learn from them, and last to do the real job of writing code and design architectures with passion as if I made a paint or compose a baroque music with my guitar as John Dowland…I’m joking but this is the idea..

I really like the Rob’s Becoming a Better Developer series, because I share the conscepts Robs try to share with others, I rtealluy like his series, I found pieces of mine in every post so I suggest to learn it.

We (Developers who has a Blog and writes out some contents) live, I think, in a sort of great-fantastic dimension of working, coding, and anything you can thing related to our job.. because in my day by day job, I can see horrible things starting from what usual developers writes in their code.. recently I read a post from Andrea Boschin’s Blog, he writes about bad coding facts, this kind of things are everyday things in our job, I don’t know in what kind of world we imagine to live and work, but every day I see terrible things happen just because it’s needed to “do it fast and do it as cheeper as possible”…

Ciao!

Hi, as usual in these weeks I have no time to write anything, I’m sorry because I’ve in mind many things I like to share, produce and more, but my time is over!

Now, I’ come back from my vacations a 3 weeks ago, and my job is falling on me as in the middle of the year, I need absolutely to take some more time, but I wish to talk about some thoughts… I like to begin this new job year as better as possible, there are so many new tech areas to skill about, and new things to learn, I’m really excited to begin, nut I hope this process would be in a “regular” and under-stress form.

Now, better, Monday, I will be on the end of my current project, my first-total-java-project I ever made, and I have to say it was a good experience, I have to notice that what my great dad-teacher-mentor told me years ago it’s really a true fact, “..it cames a moment where a language would be similar to another one..” this because my mind has changed.  

I saw that my knowledge of c# and NHibernate first, then all my knowledge on development, was very important, I could made a near a total porting of my NHibernate knowledge to Java, and I saw the same on Spring and other things…

But the real thing really make me thinking was that my Java colleagues, didn’t know something, I could say, I teached to them.. It’s a long discussion, but this surprise me, and this is another piece in the puzzle that makes me realize better developing is a passion, a real passion, a passion to learn first and the to investigate, to find out better solutons, to find a compromise, to makes every time not just and hand-work, but a “mind-opera”..may be this could be exagerate as a sentence, but I like to think a doing my job with passion like an artist, this makes me doing my job with pleasure and happiness not just like a day-by-day job.

I hope who will read this post doesn’t just think it’s too long…

Ciao!

Hi, it’s been a long very long time I have posted anything on my Blog.. and I’m really sad about that, but unfortunately I haven’t so much time in the past 2 months!!

In this past two months I’m working on a JAVA WEB project, we’re using technologies like Struts, Hibernate 3.0, Spring, Oracle Database and Servlet container implementation. I’m not shy to say this is my “Really Complete First” project in JAVA, and I have to say the experience was and is too exiting in many aspects, but sadly too.  Why I’m say this? simple, I saw a big confluence of technologies, uses, patterns, metodologies and more, I can say this could be an “Happy Develeoper Isle”, I’m too lucky cause I’m working with a colleague very cool, with strong experience and an open mind, this THE OPEN MIND took me to the “The Isle Of Thinking men” as I named by joke.

I’ve 10 years of experience, all of them in Microsoft technologies, and some marginal experience in Java, but rarely I found an open mind, a really open mind in Microsoft Technologies World, I say in the “day by day developing work”! I know peoples who I respect and I admire, with an open mind, strong experience and knowledge, but maybe, the folks in our job, they think this kind of person is a kind of “crazy scientist”, just because they goes off the lines of wich the MS developing folks adopt.

Now, in many situations, if one uses “tools” like wizards, and more, which brings the experience to 0 and to one click, if one uses them FAST, and i don’t know what else, this one could be considered a GREAT, but if this one, try to do wht his job intend to do, DEVELOPING With An Open Mind, this one could became a CRAZY or something else.

Now if I bring this one to The Java world, this one, could became not a great but nothing more that a merely very junior developer (I’m not saying you can recognize an experienced developer by how much code he writes, it’s clear experienced developer caractheristics are more complex and more in number!! now I’m saying about a way of thing, about an approach, which I really don’t like).

After some time, I realize that, what my best java collague does, if I brings that to the Visual Studio world, he could be considered a crazy man, but in the Java world he is a good senior developer. If I have to do a comparison between the world, I can see this:

  1. Java World
    1. Java developers has got a way of thinks in code reuse, but even in “developing” what they needs
    2. unfortunately Java developers has got many tools, but are lacking of strong visual tools (excuse me, I know there are many IDE’s but rarely visual tools are like Visual Studio’s ones)
    3. Java Developers can tend more to be ALT, not every time the built-in features are the better ways to do
    4. Java Developers are, from the “Junior” stage, born with an open mind and a way of think “self serviced”
  2. .NET World
    1. .NET developers rarely think in code reuse, nor to REALLY componentize things, in my experience I saw peoples who said “Do it, Do it dirty, Let it work and anything more”
    2. developers has many and many visual tools, even if this could be seen as an happy Isle, this will bring brilliant young minds to an obscure sleeping mind state (Do it, Do it fast as possible, more). Developers in this way totally lose the way in searching solutions, but first in DEVELOPING, they became Tools USERS and anything more
    3. if a .NET developer became ALT, this could happen after more and more experience, because he or she has to growth by evolution, from a BASE .NET developer to the high skyes of Open Minds, something like MATRIX WEAK-UP. If a developer try to show it’s open mind, in a microsoft world, maybe all of time he or she will be considered a Dark Obscure Scientist
    4. …..

I’m sorry about this long very long thread, but this is what was in my mind for more time. Now, me too I was in the obscure Microsoft MATRIX Kind Of Mind, but after years now I’m weak up, and I hope, I wish, I’ll do, I will spend some of my time to share experience, and anything else could be useful to peoples who wants to weak up… I know may be I’m stupid or visionist, but this is my though.

Ciao