Acesta este ultima postare in blog. Pentru ca nu mai am timp, dar mai ales pentru ca mi-e greata de ceea ce se intampla in comunitatile IT din Romania si de oamenii pe care reusesc sa ii scoata acestea in fata (si nu, nu ma refer la Tudy, cel la care se face referire in ultimul "scandal telenovelistic" pe care l-am linkat aici).

Multi vad implicarea lor ca pe un mod de a face bani sau a avansa in cariera, ceea ce nu e neaparat in spiritul multora dintre comunitatile IT. Sau poate sunt eu un idealist si doar despre asta e vorba. In fine, ma retrag.

Technorati tags:

Codecamp de toamnă la Iași

CodeCamp.ro
te invită la un set de seminarii gratuite pe tehnologii .NET, organizate la Iași în perioada 19-21 noiembrie 2009.

Despre seminarii:

Gratuite; ai nevoie doar de timp, un laptop și interes pentru tehnologiile amintite mai sus;
Organizate de dezvoltatori pasionați, pentru dezvoltatori pasionați;
Reunesc programatori .NET care, într-o atmosferă creativă, își pot completa cunoștințele, prin discuții deschise (30%) și exerciții practice (70%);
100% orientate către cursant, pe principiul Hand-on Labs, în care trainer-ul își oferă tot concursul pentru ca participanții să parcurgă toate exercițiile propuse;

Înscrierea se face aici: http://tiny.cc/codecamp2009iasi
Numărul de locuri este limitat (minim 15, maxim 25), așa că, dacă te-ai hotărât, rezervă-ți din timp un loc pentru unul sau mai multe dintre seminarii;
Dacă ai nevoie de alte informații nu ezita să ne contactezi direct pe blog prin intermediul comentariilor;
Locația va fi stabilită în fundând și va fi anunțată în timp util prin email și pe codecamp.ro;

Regulile de participare:

Laptop cu software preinstalat conform cerințelor software;
Buna dispoziție și interes pentru subiectele abordate;


Nu rata aceaste training-uri gratuite, care îți vor fi cu siguranță foarte utile.

Mergi la http://tiny.cc/codecamp2009iasi și înscrie-te la eveniment!

"As the preferred technology partner of the Bluetooth Innovation World Cup design contest, we invite you to submit your sports, fitness and healthcare device ideas in this virtually untapped market. Today's device users are increasingly wanting to record data so they can chart their progress, and this is where sensors come in. Sensors offer enormous potential in developing innovative solutions through the ability to detect real-world conditions such as motion, touch and pressure. Don't delay with your ideas for brand new products in sports, fitness and healthcare."

 Details here. Good luck!

Technorati tags: , ,

Pentru cine e interesat de embedded:

 

Freescale Semiconductor
Virtual FVF is just one week away
Virtual FTF Is Just One Week Away

Don’t forget to join us for the Virtual Freescale Technology Forum, which goes live next Tuesday, July 14.

Go to
www.freescale.com/vftf to review the program and register. This is also where you will log in to the live event next week.
Freescale Semiconductor
Registered Virtual FTF attendees will enjoy:
  • Keynote presentations from Freescale executives and distinguished guests
  • Approximately 150 hours of technical training classes
  • Live question and answer sessions and interactive chat opportunities with Freescale presenters
  • Product demonstrations from Freescale and its ecosystem live interaction with booth staff
  • Networking opportunities with Freescalers, Virtual FTF sponsors and other attendees
  • No registration fee or travel expenses

It Pays to Participate

Play to Win: Five lucky Virtual FTF attendees will win an Amazon Kindle™. To qualify, complete these tasks during Virtual FTF:
  • Attend three or more technical sessions
  • Visit one or more Technology Lab booth
  • Download/view one document
  • Score 100% on the Play to Win quiz

25% Off: Complete the Virtual FTF event survey and receive a coupon for 25% off Freescale development tools and software.

Virtual FTF Agenda Overview

Tuesday, July 14
Wednesday, July 15
Thursday, July 16

11:00 a.m.–12:00 p.m. EDT
FTF Talks: Freescale Chief Executive Officer Rich Beyer interviewed by FORTUNE Senior Editor, Internet and Technology, David Kirkpatrick


11:00 a.m.–12:00 p.m. EDT
FTF Talks: Panel Session with Freescale Executives, Moderated by Freescale Senior Vice President of Strategy and Business Transformation
Vivek Mohindra


11:00 a.m.–12:00 p.m. EDT
FTF Talks: Freescale Senior VP and Chief Sales and Marketing Officer Henri Richard interviews Tom Wallace, formerly of General Motors


12:00 p.m.–7:00 p.m. EDT
Technical Sessions
Technology Lab
Resource Center
Chat Lounge


12:00 p.m.–7:00 p.m. EDT
Technical Sessions
Technology Lab
Resource Center
Chat Lounge


12:00 p.m.–7:00 p.m. EDT
Technical Sessions
Technology Lab
Resource Center
Chat Lounge

Technorati tags: ,

A fost o perioadă în viaţa mea de student (şi majoritatea studenților care chiar termină Facultatea cred ca trec prin asta) cȃnd am fost foarte stresat gȃdindu-mă la un posibil subiect pentru Licență.

De cele mai multe ori profesorii Facultăților propun o listă de subiecte din care studentul are posibilitatea să aleagă ce îi place. Din păcate, se întȃmplă de foarte multe ori ca acele subiecte sa nu fie destul de atrăgătoare sau să fie prea generale pentru a putea fi puse în practică  pur şi simplu (eu trebuia să fac o "Aplicație ASP.NET"). Aşa că studentul este pus în situația să caute ajutorul în altă parte.

Pe lȃngă deja cunoscutele stagii la firmele din Romȃnia sau de aiurea (pentru firme romȃneşti consultă student2business, stagiipebune), o ofertă extrem de interesantă vine de la Google. Ea se numeşte Google Summer of Code. Cum stă treaba? În fiecare an, Google alege un număr de proiecte open source pe care le finanțează. Studenții se înscriu în program la organizația dorită şi... codează. Multe dintre aceste proiecte merită prezentate ca proiecte de Diplomă, dar puteți participa şi pentru a nu vă plictisi în vacanța de vară. Bineînțeles, apare şi avantajul de a fi lucrat al un proiect open source şi acela de a fi participat in GSoC.

Technorati tags:

Ramasesem in urma. Doar cateva titluri care merita:

- G. G. Marquez: Despre dragoste si alti demoni (Am ramas cu imaginea de final. Sa tin minte: strugurii trebuie mancati incet, bob cu bob)

- Henri Charriere: Pappilon (Din colectia "Adevarul". Nu credeam ca o sa vad oameni care cumpara cu atata ardoare carti. Fie doar si pentru a avea "toata colectia")

- V. Hugo: Notre Dame de Paris (Pentru cei care mai gusta (inca) o poveste de dragoste)

 

Technorati tags:

Posted 23 aprilie 2009 14:11 by lucianb | 0 Comments
Filed under:

In viata trebuie sa mai faci si bine. Si ii aud pe multi zicand ca in Romania nu prea ai cum si cui sa faci bine. Decat sa faci un pachet si sa cauti un orfelinat, preferi sa incerci sa dai cu orez in copiii din Malaezia.

Mai bine nu. Uite ca se poate si la noi: http://www.unitedway.ro/. Fara tricouri si cani. Dai pur si simplu. Tu cand ai de gand sa faci bine?

Technorati tags:

Posted 23 aprilie 2009 14:03 by lucianb | 0 Comments
Filed under:

A aparut lista cu noii MVP's pe aprilie 2009 (recunoastrea se acorda o data la trei luni celor mai infocati sustinatori ai tehnologiilor MSFT si se reinnoieste anual). Pe lista se afla si primul MVP pe Visual C# din Romania. El se numeste Andrei Ignat (are un blog interesant aici) si tocmai a intrat in istorie.

Felicitari, Andrei!

Technorati tags:

Everyone knows how to open a file from code. Let’s say we have an executable file and we want to use C# to open it. All we have to do is to use the Process.Start(string argument) method like this:

 

Process.Start(@"c:/sample.exe");

 

 

By running this, the sample.exe process will luched. But what happens if we don’t want to simply run this application? Every file in the Windows OS has it’s own set of verbs, describing the actions that the file can execute. Let’s see the set of actions for two files. We can find those when we right click on a file.

Here are the verbs for an exe file:

  

And here are the verbs for a xml file:

  

The default option for both of them is the „Open” action. This is the one that will be called if we double click on them or if we use the Process.Start method with the file’s name as an argument.

But what if we don’t want to use the default option? What if we want to Run the executable file with different credentials or what if we want to edit the xml file programmaticaly?

We can achive that by using the Verb property of the ProcessStartInfo class.  First of all, let’s use C# to get all the possible actions for a file:

ProcessStartInfo startInfo = new ProcessStartInfo(@"c:/note.xml");

int i = 0;

 

if (File.Exists(@"c:/note.xml"))

{               

    foreach (String verb in startInfo.Verbs)

    {

        // Display the possible verbs.

        Console.WriteLine("  {0}. {1}", i.ToString(), verb);

        i++;

    }

}

Console.WriteLine("There are {0} possible actions", i.ToString());

Console.ReadKey();

 

Output:

  0. edit

  1. open

There are 2 possible actions

 

Or, for the exe file (the same code, only the name of the file will be c:/sample.exe, and not c:/note.xml) the output will be:

  0. open

  1. runas

There are 2 possible actions


Let’s modify the verb in our program:

ProcessStartInfo startInfo = new ProcessStartInfo(@"c:/note.xml");

startInfo.Verb = "Edit";

Process newProcess = new Process(); 

newProcess.StartInfo = startInfo; 

          

newProcess.Start();

           

Console.ReadKey();

 

The result:


Instead of opening the file with the system’s default XML Viewer (in my case - IE), the file was opened with the default XML Editor from the system (in my case - Notepad).    

 

Technorati tags:

Posted 27 februarie 2009 20:51 by lucianb | 0 Comments
Filed under:

Citesc pe tot felul de siteuri si forumuri ca C-ul e un limbaj de programare mort, ca merita sa inveti Java si C++. Sa vadem care e trendul limbajelor de programare si ce cere piata.

TIOBE ne anunta ca anul trecut limbajul de programare cu cea mai mare crestere anul trecut este C. C-ul a intregistrat o diferenta pozitiva fata de anul trecut de 2.01%. Cu toate acestea, fata de pozitia de acum 5 ani, C-ul a scazut cu 2.67% si pare sa isi pastreze trendul descendent, la fel ca si Java, care a pierdut fata de acum 5 ani 4.55%. Marii castigatori pe ultimii 4 ani sunt C#, Python si Ruby.

O alta statistica interesanta (realizata de Black Duck Software) este cea legata de proiectele open source desfasurate in cursul anului trecut. C-ul ocupa aici primul loc in cadrul acestor proiecte, 47% din totalul proiectelor folosind acest limbaj. Pe locul doi este Java, cu 28%. Mai multe informatii aici.

Technorati tags: ,

Abia astept sa vad asta ruland pe asta.

Technorati tags:

Sau "De ce moare Zune-ul?".

Citeam pe /. despre "sinuciderea in masa" (plastic vorbind) a Zune-ului pe data de 31 decembrie, intr-un an bisect. Bineinteles, pentru un iAnyting killer, miscarea asta nu e foarte buna. Si nici pentru imaginea producatorului abia scapat de ecrane albastre. Zilele astea am aflat si care era cauza: un bug in driver. Codul sursa al driverului s-a "scurs" exista public pe internet siteul producatorului chipului si il puteti vedea in toata splendoarea lui aici. Unde mai exact in cod e problema precum si cum poate fi rezolvata, cititi aici.

E o problema stupida intr-un while. Lasand la o parte modul defectuos de calculare a datei, totul ar trebui sa fie doar un mic bug usor de prins intr-un test. Bineinteles, toti scriem cod cu buguri. Dar cand ma gandesc ca acel cod trebuia sa treaca prin doua serii de teste (unul la producator, unul la Microsoft), incep sa ma sperii. Daca procesorul respectiv nu ajungea intr-un dispozitiv multimedia, ci intr-un, sa zicem, aparat medical...? 

Technorati tags: ,

Inspirat de toata lumea care îşi face statistici pentru anul care tocmai a trecut şi în ciuda faptului ca nu îmi place sa fac exact acelaşi lucru pe care îl fac şi alţii, voi scrie câteva lucruri despre anul 2008 şi despre ce a însemnat el pentru mine.

În primul rând 2008 a fost anul în care am terminat un Master. Oricât de puţin ar putea să însemne în societatea românească (întoarsă cu susul în jos) nişte studii superioare, nu îmi pare deloc rău că am terminat o facultate şi că am făcut un Master. Ba chiar mă gândesc să mai fac unul.

Pe plan profesional, noul an a venit cu o angajare (era şi cazul) la o firma la care mi-am dorit să lucrez. Înainte de a mă angaja aici am mai trecut pe la nişte interviuri. Unele firme mi-au zis “pas”. Altora le-am zis eu “pas”. Până la urmă a ieşit cum mi-am dorit.

 Dar tot la “plan profesional” aş trece şi activitatea pe care am avut-o în cadrul Centrului Microsoft din TUIASI (Centrul e cuprins în ceea ce Microsoft numeşte mai nou programul Microsoft Student Partners).  În ultimul an de activitate în Program am ţinut undeva în jur de 10 laboratoare (nu mai reţin exact cate dar le estimez undeva la acest număr). Coroborat cu activitatea mea din anii trecuţi, pot spune ca sunt mulţumit de ceea ce am realizat în cei 3 ani de când Florin Grigoriu, Mircea Livadariu, Radu Timofte şi Madălina Maxim (“vechea” echipă) m-au invitat să mă alătur lor.

Încă un lucru de care mă bucur pentru anul care a trecut este că am reuşit să ajut în altă comunitate (de data aceasta online) a Microsoftului (da, se pare ca am rămas cu ceva sechele în urma participării în Programul Academic; unii ar numi asta “brainwash”, dar eu nu aş fi atât de drastic). După cum am mai scris pe blog, m-am implicat în MSDN Forums, o comunitate interesantă, unde am “cunoscut” câţiva oameni dedicaţi. Am reuşit în anul care a trecut să acumulez în jur de 2400 de posturi. Singurul lucru pentru care îmi pare rău este că nu am reuşit să ating 15000 de puncte (activitatea pe acel forum se măsoară în puncte; sunt punctate răspunsurile corecte, raspunsurile care “ajută” – helpful, etc.). Nu am ajuns decât la 14800 puncte, cu o medie de 200 de posturi pe lună. Mult timp investit.

Dar cel mai importantă întâmplare a anului trecut este de factură personal şi, dacă şi anul viitor va fi măcar pe jumătate la fel de bun ca cel care a trecut, atunci totul e bine.

Sper să reuşesc să întreţin blogul acesta şi anul viitor, deşi e destul de greu luând în considerare puţinul timp liber de care ma bucur. Apropo de blog: ignoraţi postul acesta personal. Voi încerca să îl menţin tehnic.

La mulţi ani!

Technorati tags:

Nu am reusit sa citesc mai mult de 17 pagini (sunt ocupat cu pregatirile pentru Anul Nou), dar pare a fi o carte de referinta: How to Work for an Idiot: Survive & Thrive - Without Killing Your Boss de John Hoover. 

Voi incerca sa o termin zilele astea. Daca vi se pare interesanta, lasati un comentriu. Sarbatori fericite! 

Technorati tags:

Posted 31 decembrie 2008 02:58 by lucianb | 1 Comments
Filed under:
Seems like the new Windows will be better then XP. If we look at the latest build, Windows 7 is very promising. The guys at ZDNet made some tests. The results are available here: http://blogs.zdnet.com/hardware/?p=3187.

Technorati tags:

Posted 12 decembrie 2008 11:38 by lucianb | 2 Comments
Filed under:

Am avut surpriza ca multi prieteni care lucreaza in domeniu sa ma intrebe "de ce?". Big Smile

Why do programmers get Halloween and Christmas confused? Oct 31 == Dec 25.

Technorati tags:

Posted 31 octombrie 2008 15:44 by lucianb | 4 Comments
Filed under:

Using MAPMarti, 4 noiembrie va avea loc evenimentul Using Microsoft.Academic.Program; in Amfiteatrul AC0-1 al Facultatii de Automatica si Calculatoare, Iasi, incepand cu ora 15:00.

Vor prezenta:

  • ·         Stefan Boronea – prezentare echipa, prezentare laborator C#, Imagine Cup
  • ·         Lucian Carata – laborator ASP .NET, SQL Server 2008
  • ·         Bogdan Apostol – laborator WPF + demo WPF
  • ·         Emil Czeran – MSDNAA + ELMS
  •      
  •      

 

 

 

 

 

 

 

Technorati tags:

ITBoard este comunitatea profesionistior IT&C din Romania. Reprezentantii sai organizeaza in aceste zile (25.10 in Cluj, 01.11 in Iasi, 15.11 in Timisoara si 22.11 in Bucuresti) o serie de prezentari. Din programul pentru Iasi:

  • 10.00 - 10.30: Servim impreuna o cafea de bun venit
  • 10.30 - 11.00: Botnets si Phishing, vorbeste Victor Constantinescu, MVP
  • 11.00 - 11.30: Virusi, spam - situatia curenta, tendinte, vorbeste Bogdan Morosan, MCI
  • 11.30 - 12.30: Despre Virtualizare, vorbeste Gabi Citron
  • 12.30 - 13.00: Luam o pauza, sa ne recapatam puterile
  • 13.00 - 14.00: Despre noile produse dedicate pietei small si medium, vorbeste Sebi Vijeu, Microsoft Romania

Locaţia: Facultatea de Economie şi Administrarea Afacerilor, B-dul Carol 1 nr.22, corp B, sala B417, etaj 1, Iasi.

Cei interesati se pot inscrie aici.

 

Technorati tags: ,

An interesting contest about .NET MicroFramework started not so long ago. The entrants are to imagine an inovative system. Some examples:

  • thermostats use weather forecasts to minimize energy usage and to run your sprinkler system,
  • retail kiosks checkout items from inside your basket and send out-of-stock items home,
  • your refrigerator reorders groceries,
  • home appliances negotiate with each other to reduce power consumption, or
  • the treadmill monitors your health and provides advice from your doctor
  • The calendar of the competiton, the rules and other important information can be found here: http://dreamdifferentcontest.com/. If you'll be elected as a semi-finalist, you'll get a development kit, as described here.

    An interesting fact: the team can consist of up to 3 people. Anyone interested? :)

    Technorati tags: ,

    Sometimes you need to set all values of an array to a default value. You can do this with a "for" loop that sets every value in the array to the default value you need.

    I will show you how to do this using extension methods and generics. See the next code snippet:

     

        class Program

        {

            static void Main(string[] args)

            {

                int[] ZeroArray = new int[10].SetDefValue(0);

                foreach (int i in ZeroArray)

                {

                    Console.WriteLine(i.ToString());

                }

            }       

        }

     

        public static class ExtMet

        {

            public static T[] SetDefValue<T>(this T[] array, T value)

            {

                Array.ForEach<T>(array, x => x = value);

                return array;

            }

        }

     

    Technorati tags:

    Posted 27 octombrie 2008 11:10 by lucianb | 1 Comments
    Filed under:

    Windows Server 2008 TrainingPoate te-ai gandit sa mergi la un curs de Windows Server 2008 dar nu esti foarte hotarat. Afla ca acum este cel mai bun moment sa o faci. Daca participi la oricare din cursurile listate aici vei primi si o licenta de Windows Server 2008 gratuit.

    Aflu de la Zoli ca in prezent participa in campanie cinci centre de training din Bucuresti, Timisoara si Constanta. Cum campania se incheie pe 31 decembrie 2008, ar putea apare si altele. 

    Technorati tags: ,

    Yap, the title of this article is the same with the title of a South Park episode. In that episode, Professor Chaos (an evil alter ego of Butters) is trying to destroy South Park, but he finds out that every method he can think of was already done in a Simpsons episode.

    But this will not be about South Park or Simpsons or any other animated series. I just want to speak about inovation.  A few years ago I participated in the Imagine Cup's Software Design competition. Software Design is among most prestigious sections of the competition because, well, it is also one of the hardest and most challenging sections. I was working back then with a team of very smart students, dreaming of changing the world. I know, it’s a goal not so easy to achieve. But I always thought that if you don’t think big, you have no chance to do something really interesting with your life. 

    Our idea was to construct a submersible system, capable of gaining environmental related data from within a lake. It was a hard idea to come up with in the first place. We had a brain-storming session and this was the most fesable idea we could think of. (You can imagine how sci-fi were the other ideas that didn't make it). Of course, we were aware that this was almost impossible if we were to take into account the budget and the time we had. But we kept on dreaming and hoping until the last minute we’ll get passed from the first phase of the competition and we’ll find some funding for the project. Well, nobody believed we can do it. We didn’t pass that phase. More than this, we were amongst the last five teams from a total of ten that participated in the local Final of the contest. I can also remember a teacher in the audience asking us to make a difference between science and fiction. You can see a part of our final report here (see the TUIASI.Aramaya.Aremis.doc project).

    What does this have to do with anything? I was just reading this article. It’s about… a submersible, semiautonomus system, capable of acquiring environmental related data. It is developed by MIT (Doh!) I wonder why there is not a single great project coming from a University from Romania when we all know that research funding do exist. Yeah, MIT has the money, the people and the knowledge to actually develop a working prototype, but a problem I see in our system is that no one tries to do something really revolutionary.

    I’ll never stop believing that the most important thing in life is to dream at things that seem almost impossible to do and to try doing that almost-impossible-you-can’t-do-it thing. It is the only way to success.

    Keep on dreaming! 

    Technorati tags: , ,

    Sunt in Vatra Dornei la ceea ce ar putea sa fie ultimul Bootcamp Microsoft pentru mine Smile, scriu de pe laptopul lui Tudor Vlad (multam Tudi) si vreau sa impartasesc bucuria pe care ti-o poate aduce un comentariu ca acesta la un blog-post tehnic. Sunt unele gesturi care te fac sa crezi ca nu te chinui degeaba cand impartasesti cu altii moduri in care iti rezolvi tu problemele. Scriu asta ca un apropo la o discutie avuta astazi cu niste colegi Microsoft Student Partners despre ce motivatie ar avea cineva sa scrie un blog tehnic si ce ar putea spune intr-un astfel de blog.

    Daca cititi articolul respectiv veti vedea ca modul in care am rezolvat acea problema nu e neaparat o inovatie personala. E o idee pe care am preluat-o de la un "meserias" de pe MSDN Forums (observ acum ca nici macar nu am linkat in acel articol spre postul respectiv, ci doar spre siteul MSDN Forums - sa imi fie rusine). Totusi - desi rezolvarea problemei nu e o inovatie personala - imbratisez ideea unui speaker de astazi (nu stiu sigur daca Mihai Tataran a zis asta sau altcieneva) conform careia de la roata, hartie si Internet incoace putine lucruri pot fi calificate drept "inovatie". Toti spunem aceeasi poveste, numai ca o facem in moduri diferite. Modul in care scriu eu - mai direct, cu mai mult cod, incercand sa prind esentialul - incearca sa rezolve problemele unui anumit tip de cititor intr-un anumit stil.

    Simt o placere deosebita cand vad ca din cele 160 - 190 de hituri pe care le am in "zilele bune", mai mult de jumatate se duc pe articolele tehnice, articole care ar putea rezolva problema cuiva, problema cu care eu m-am intalnit si pe care am depasit-o. Iar comentariile de genul celui de mai sus ma motiveaza.

    Si, desi am trecut acum cateva luni pe un job care nu imi va oferi circumstantele sa ma dezvolt intr-un ritm accelerat pe tehnologiile spre care au fost indreptate unele din post-urile mele pe acest blog "semi-tehnic", promit ca voi ramane in zona si ca veti mai "auzi" de la mine post-uri orientate spre tehnologiile Microsoft. De altfel, pentru a invata si pentru a ma tine la curent cu ce se intampla in lumea Microsoft am inceput sa raspund la intrebari pe MSDN Forums (mai ales pe forumul de Visual C#, Visual C# Express si pe cel de Windows Forms). E un alt mod minunat de a da inapoi comunitatii ceea ce si eu am primit, la randul meu, prin programul Microsoft Student Partners, program datorita caruia am reusit sa cunosc o dezvoltare accelerata in timpul Facultatii. Dar despre "dezvoltarea accelerata", despre aventura mea in Microsoft Student Partners si despre MSDN Forums poate intr-un blog-post viitor.

    Technorati tags:

     

    De pe data de 29 august 2008 vǎ puteţi înscrie într-una din categoriile de concurs ale Imagine Cup 2009, cea mai prestigioasǎ competiţie IT pentru studenţi. Finala din anul 2009 va avea loc în Egipt, iar categoriile de concurs propuse participanţilor sunt descrise aici.

    Sper ca anul acesta sǎ avem mai mulţi reprezentanţi ai ţǎrii noastre în Finalǎ şi sǎ ne întoarcem acasǎ cu mai multe medalii decât a luat România la Olimpiada de la Beijing.

    Cred cǎ nu mai este cazul sǎ subliniez cǎ este o bunǎ ocazie pentru fiecare student de a arǎta ce poate (sieşi, profesorilor şi viitorilor angajatori sau colaboratori) şi de a-şi pune amprenta asupra modului în care va arǎta tehnologia în viitor. Totul depinde de voi!

    Succes!

    Technorati tags: , ,

    Deşi tema a mai fost abordată (şi chiar pe acest board), aş vrea să punctez şi eu (poate cu o prea mare întârziere) existenţa unei modalităţi în C# 3.0 de a extinde funcţionalitatea unei clase. Ce mi se pare cu adevărat interesant (şi nu văd punctat acest lucru în articolul lui Alex Ghiondea spre care am făcut trimitere în linkul de mai sus) e că se pot extinde şi tipuri definite în CLR.

    De exemplu, imaginaţi-vă că lucraţi la un proiect în care folosiţi intensiv stringuri. Mai mult, pentru voi e important ca aceste stringuri să reprezinte date. În mod normal poate aţi fi tentaţi să folosiţi o metodă care verifică dacă stringul este în formatul corect.

     

        class Program

        {

            static void Main(string[] args)

            {

                string corDate = "01/01/2008";

                string wroDate = "20091/112/112";

                Console.WriteLine(isDate(corDate));

                Console.WriteLine(isDate(wroDate));

            }

     

            public static bool isDate(string s)

            {

                Regex dateRegex = new Regex(@"^\d{1,2}\/\d{1,2}\/\d{2,4}$");

                return (dateRegex.IsMatch(s)) ? true : false;

            }

        }

    Cum e şi de aşteptat, rezultatul este:

    True

    False

    Press any key to continue . . .

     

    Dar hai să folosim şi noua funcţionalitate. Vom încerca să scriem o metodă care să extindă tipul string:

    class Program

        {

            static void Main(string[] args)

            {

                string corDate = "01/01/2008";

                string wroDate = "20091/112/112";

                Console.WriteLine(corDate.isDate());

                Console.WriteLine(wroDate.isDate());

            }       

        }

     

        public static class ExtMet

        {

            public static bool isDate(this string s)

            {

                Regex dateRegex = new Regex(@"^\d{1,2}\/\d{1,2}\/\d{2,4}$");

                return (dateRegex.IsMatch(s)) ? true : false;

            }

        }

     

    Rezultatul este cel aşteptat:

    True

    False

    Press any key to continue . . .

    Se observă folosirea directă a metodei isDate() asupra variabilei de tip string. Cum a fost posibil? Am extins tipul string in clasa statica ExtMet (observati parametrii metodei public static bool isDate(this string s)).

    Deşi sunt o “armă” puternică, metodele extinse ar trebui folosite cu atenţie. Codul ar putea deveni greu de înţeles. Folosite, însă, cu grijă, aduc o funcţionalitate binevenită şi prezintă mici riscuri de “împuşcare în picior”.

     

    Technorati tags:

    Posted 7 august 2008 23:52 by lucianb | 6 Comments
    Filed under:
    More Posts Next page »