Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica


Informatica


Qdidactic » stiinta & tehnica » informatica
Modificare culoare ochi in Photoshop



Modificare culoare ochi in Photoshop


Modificare culoare ochi in Photoshop

Imaginea este luata dintr-un articol care acopera tema cu ochii rosii, dar prin tehnica foto.

O sa folosesc pentru articolul asta probabil cea mai scurta cale de a face totul
Asadar, incep cu indepartarea efectului de ochi rosii. Pentru asta folosesc unealta eliptica de selectie (marcata cu cercul rosu in bara de unelte);
Apoi descriu un cerc pe irisul rosu al subiectului.



Nu voi colora in zona aceea, ci voi altera informatia pixelilor existenti; pentru cazul asta, voi desatura treptat pata rosie.

Pentru asta folosesc sponge tool, marcat cu acel cerc. In functie e intensitatea la care este setat, el sterge gradual din culori pe unde dai cu el Ca sa mearga repede si uniform, am pus o dimensiune mare pentru el (cercul mare din jurul arcadei este de fapt dimensiunea cu care lucrez cu sponge tool).

Pentru ca am definit inainte o selectie, unealta mea va desatura numai in acel loc.


Solutia care se adopta in astfel de situatii este plasarea informatiilor intr-o baza de date si accesarea lor ori de cate ori se cere acest lucru de cineva. Mai exact in loc sa se creeze 3-4 pagini Web in HTML care sa fie modificate ori de cate ori apare o schimbare, se va crea o baza de date si cateva scripturi pe partea de server prin care vor construi dinamic, paginile HTML care vor fi afisate. Schimbarile se vor face doar la nivelul bazei de date, ceea ce e mult mai simplu.

Paginile Web se clasifica, in functie de natura continutului, in pagini statice si pagini dinamice.

Principalele caracteristici ale paginilor web statice sunt:

- contin doar elemente HTML;

- codul sursa vizualizat in navigator este identic cu cel al fisierului stocat pe disc;

- nu ofera interactivitate.

Paginile web dinamice se caracterizeaza prin urmatoarele:

- continutul lor este creat dinamic si poate diferi la accesari diferite; de exemplu la acelasi URL continutul paginii poate varia in functie de anumiti parametri cum ar fi locatia geografica a utilizatorului, ora, paginile vizitate anterior, profilul utilizatorului;

- ofera interactivitate;

- posibilitati de interactiune.

In functie de locul in care este evidentiat caracterul dinamic al paginilor exista pagini dinamice pe parte de client si pagini dinamice pe partea de server.

2. Pagini dinamice pe partea client


Exista mai multe tehnologii care permit realizarea de pagini dinamice pe partea de client. Dintre acestea se enumera:

- scripturi pe partea de client (client side scripts);

- DHTML (Dynamic HTML);

- Applet-uri Java;

- Controale ActiveX;

- Elemente multimedia.

Scripturile pe partea de client (client side scripts) sunt secvente de program incluse in pagina HTML care se executa de catre navigator. Secventele de program sunt incluse prin marcatorul <SCRIPT> sau in proprietatile anumitor componente HTML ca raspuns la diferite evenimente.

Limbajele utilizate pentru a realiza scripturi pe partea de client sunt JavaScript, Jscript si VBScript.

Secventele de program scrise folosind aceste scripturi nu ofera acces la resursele sistemului local (fisiere, retea).

Scripturile pe partea de client sunt utilizate pentru asigurarea interactivitatii (meniuri), pentru validarea formularelor, pentru a crea diferite efecte, pentru efectuarea de calcule, diverse elemente de animatie etc.

DHTML (Dynamic HTML) este o tehnologie dezvoltata de Microsoft care combina HTML, foi de stiluri (CSS) si script-uri pentru a realiza pagini Web dinamice sau interactive. Permite utilizatorilor sa interactioneze cu pagina fara a retrimite o cerere la serverul Web.

Applet-uri Java reprezinta aplicatii de dimensiune redusa, scrise in limbajul Java. Codul binar al aplicatiei este descarcat pe masina client de pe server si executat local, in masina virtuala Java (JVM). Aproape toate calculatoarele permit executia applet-urilor, insa pentru functionarea acestora este necesara instalarea unei masini virtuale Java.

In cadrul paginii HTML applet-urile sunt incluse prin intermediul marcatorilor <APPLET> sau <OBJECT>.

Din applet-urile Java nu este permis accesul la sistemul local de fisiere si la retea, astfel riscul ca aceste aplicatii sa contina cod malitios sunt reduse.

Controalele ActiveX sunt componente binare incluse in paginile Web pentru a oferi interactivitate. Sunt asemanatoare applet-urilor, insa spre deosebire de acestea ruleaza pe platforma Windows si au fost dezvoltate in special pentru Internet Explorer.

Controalele ActiveX sunt incluse in cadrul paginii Web print intermediul marcatorului <OBJECT>.

Spre deosebire de scripturile pe partea de client si nu au restrictii in ceea ce priveste accesul la disc, ceea ce face ca anumite componente de acest tip sa fie susceptibile de cod rauvoitor, asemanator virusilor, viermilor sau cailor troieni. De aceea, in cazul in care o pagina contine controale ActiveX, navigatorul printr-o fereastra de dialog cere confirmarea utilizatorului pentru instalarea si rularea acestora.

Elemente multimedia sunt dezvoltate in general folosind produsul Macromedia Flash. Acestea se prezinta sub forma de fisiere SWF multimedia si sunt incluse in pagina Web prin intermediul marcatorului <OBJECT>. Pentru a putea rula pe partea de client aceste fisiere este necesara instalarea unui plug-in denumit Macromedia Shockwave Player.

Fisierele multimedia Flash se realizeaza sub forma unor filme, care sunt proiectate cadru cu cadru. Acestea ofera diverse efecte multimedia (animatie, sunet) si permit interactivitatea cu utilizatorul. Sunt utilizate pentru meniuri, jocuri, filme de animatie etc.

Pagini dinamice generate pe partea server


Interpretorul de scripturi tip server-side are rolul de a executa scripturi la cererea serverului de Web, de cele mai multe ori de a prelua rezultatul unor interogari la nivelul bazelor de date si de a trimite spre serverul Web rezultatul executiei scripturilor sub forma de continut HTML pentru a putea fi afisat de catre navigator.

In momentul in care serverului Web i se solicita rularea unui script, acesta identifica in functie de extensia fisierului care din compilatoare trebuie sa ruleze scriptul respectiv.



Figura 6. Generarea paginilor dinamice pe server

Fiecarui interpetor de scripturi i se asociaza unui limbaj de server-side scripting. Limbajele populare ale momentului sunt: PHP (Personal Home Pages), ASP (Active Server Pages), ASP.NET si JSP (Java Server Pages). La acestea se mai adauga si o serie de alte tehnologii de interes mai restrans.

Caracteristicile generale ale paginilor Web dinamice generate pe partea de server, indiferent de limbajul de scripting folosit sunt:

- necesita un procesor pentru paginile dinamice sau un mediu de executie;

- intr-o pagina de script (ASP, JSP, PHP) pot fi imbinate limbajul HTML si secvente de cod;

- secventele de cod care sunt executate pe partea de server, inainte de a trimite pagina la client;

- exista astfel posibilitatea de a particulariza paginile in mod dinamic;

- ofera posibilitatea de interactiune cu baze de date diferite;

- au acces la toate resursele serverului Web (fisiere, retea).

In mod uzual, prin intermediul scripturilor sunt prelucrare informatiile din campurile formularelor (<FORM>) din cadrul paginilor Web.

.NET

1. Privire de ansamblu asupra tehnologiei

Microsoft .NET este un software care conecteaza informatie, oameni, sisteme si dispozitive. "Cuprinde" clienti, servere si tool-uri de dezvoltare si consta din:

- .NET Framework, folosit la construirea si rularea diferitelor tipuri de software, incluzand aplicatii Web-based, aplicatii client inteligente si servicii Web XML - componente care faciliteaza integrarea prin folosirea in comun a datelor si a functionalitatilor in retea prin protocoale standard, independente de platforma, cum ar fi XML (Extensible Markup Language), SOAP si HTTP.

- Tool-uri de dezvoltare, cum ar fi Microsoft Visual Studio .NET 2008, care asigura un mediu de dezvoltare integrat (IDE) pentru a maximiza productivitatea dezvoltatorului cu .NET Framework.

- Un set de servere, inclusiv Microsoft Windows Server, Microsoft SQL Server si Microsoft BizTalk Server, care integreaza, ruleaza, opereaza si controleaza aplicatii Web-based.

- Software de client, cum ar fi Windows XP, Windows CE si Microsoft Office XP, care ajuta dezvoltatorii sa ofere experienta semnificativa utilizatorilor despre familia de dispozitive si produse existente.

.NET Framework este integral o componenta Windows pentru construirea si rularea urmatoarei generatii de aplicatii software si servicii Web. .NET Framework:

- suporta peste 20 de limbaje de programare diferite;

- administreaza multe din instalatiile implicate in dezvoltarea de software;

- usureaza mai mult ca oricand construirea, amplasarea si administrarea de aplicatii sigure, robuste si cu performante ridicate.

.NET Framework este compus din common language runtime si un set unificat de biblioteci de clase.

Common Language Runtime

Common Language Runtime (CLR) este responsabil pentru servicii run-time cum sunt integrarea de limbaje, intarirea securitatii si managementul memoriei, proceselor si firelor de executie. In plus, CLR are un rol in timpul de dezvoltare. Trasaturi cum ar fi: managementul ciclului de viata, numirea tipurilor, tratarea exceptiilor intre limbaje si legarea dinamica reduc cantitatea de cod pe care dezvoltatorul trebuie sa o scrie pentru a transforma "business logic" intr-o componenta reutilizabila.

Biblioteca de clase

Clasele de baza ofera functionalitati standard, cum ar fi intrare/iesire, manipularea stringurilor, managementul securitatii, comunicatie in retea, managementul firelor de executie, managementul de text si diferite trasaturi legate de design-ul interfetei utilizatorului.

Clasele ADO.NET ofera dezvoltatorilor posibilitatea sa interactioneze cu date in format XML, accesate prin interfete OLE DB, ODBC, Oracle si SQL Server. Clasele XML ofera posibilitatea manipularii, cautarii si translatarilor XML. Clasele ASP.NET suporta dezvoltarea aplicatiilor Web si a serviciilor Web. Clasele Windows Forms suporta dezvoltarea de aplicatii de tip desktop-based smart client.

Impreuna, bibliotecile de clase ofera o interfata comuna si consistenta de dezvoltare pentru toate limbajele suportate de .NET Framework.

Adoptarea lui .NET

.NET Framework "este in viata" din momentul in care versiunea 1.0 a fost lansata, in ianuarie 2002. Ea a trecut prin mai multe puncte de cotitura in adoptare:

compilatoare pentru peste 20 de limbaje de programare sunt disponibile pentru utilizarea in cadrul .NET Framework;

- peste 350 de alte tool-uri sunt disponibile din partea altor distribuitori pentru a ajuta la dezvoltarea .NET Framework, incluzand aproximativ 250 de "adaugiri pentru Visual Studio .NET, precum si IDE-uri de la Borland si Macromedia;

- peste 350 de carti au fost sau vor fi in curand publicate. Ele discuta despre dezvoltarea software-ului folosind .NET Framework;

- peste 750 de grupuri de utilizatori .NET Framework exista in intreaga lume;

milioane de utilizatori viziteaza in fiecare luna site-urile .NET Code Wise Community Web;

- peste 1 milion de dezvoltatori folosesc Visual Studio .NET;

- mii de companii importante, cum ar fi Autodesk, Credit Suisse First Boston, Honeywell, Xerox, fac economii enorme din punct de vedere al costurilor, obtin noi oportunitati de integrare si o imbunatatire a timpului de dezvoltare si de patrundere pe piata a aplicatiilor folosind .NET Framework ;

- Microsoft livreaza agresiv aplicatii construite folosind .NET Framework. MSN, Microsoft CRM, Windows XP Media Center Edition si Microsoft.com Smart 404 sunt doar cateva dintre multiplele aplicatii Microsoft construite deja folosind .NET Framework.

Dezvoltarea rapida

Posibilitatea de a folosi unul dintre multiplele limbaje ale .NET Framework ofera dezvoltatorilor posibilitatea de a folosi limbajul de programare care este cel mai indicat pentru un anumit task si sa combine limbajele in cadrul aceleiasi aplicatii.

Componentele scrise in diferite limbaje pot functiona transparent intre ele, fara a fi necesara munca suplimentara din partea dezvoltatorului. .NET Framework a fost anuntat ca suporta peste 20 de limbaje de programare comerciale si academice.

Design-ul de racordare" libera bazat pe componente ale .NET Framework minimizeaza cantitatea de cod pe care dezvoltatorii trebuie sa o rescrie si maximizeaza potentialul de reutilizare al codului.

     Operatii imbunatatite

     .NET Framework imbunatateste performantele aplicatiilor Web tipice. Compania Middleware, fondatorii forumului de dezvoltatori J2EE The ServerSide.com, au condus un test benchmark pentru .NET Framework si J2EE si au gasit ca .NET Framework a depasit semnificativ J2EE in cazul aplicatiilor Web de hosting, serviciilor Web si tranzactiilor distribuite.

.NET Framework ofera, de asemenea, performante deosebite si beneficii de scalabilitate in raport cu tehnologia Active Server Pages (ASP), multumita tehnologiilor de compilare just-in-time (JIT) si de cache-ing.

Limbaje suportate de .NET

In momentul de fata, .NET suporta urmaatoarele limbaje: C#, VB.NET, C++, J#.

Limbajele anterioare sunt de la Microsoft. Multe alte companii scriu compilatoare pentru alte limbaje folosind suport .NET.

Viitorul .NET-ului

Microsoft urmareste ca in viitor toate tehnologiile sale sa se bazeze pe .NET sau sa fie "inrudite" cu .NET. Versiunea urmatoare a serverului SQL suporta chiar si scrierea de stored procedures in limbajele .NET. .NET runtime va fi o parte componenta a tuturor sistemelor de operare.

.NET este un framework de dezvoltare software ce permite realizarea, distribuirea si rularea aplicatiilor-desktop Windows si aplicatiilor WEB. Tehnologia .NET pune laolalta mai multe tehnologii (ASP, XML, OOP, SOAP, WDSL, UDDI) si limbaje de programare (VB, C++, C#, J#) asigurand, totodata, atat portabilitatea codului compilat intre diferite calculatoare cu sistem Windows (si nu numai, deoarece in ultima vreme au aparut implementari .NET Framework si pe Linux - proiectul Mono), cat si reutilizarea codului in programe, indiferent de limbajul de programare utilizat. .NET Framework este o componenta livrata impreuna cu sistemul de operare Windows. De fapt, .NET 2.0 vine cu Windows Server 2003 si XP SP2 si se poate instala pe versiunile anterioare, pana la Windows 98 inclusiv; .NET 0 vine instalat pe Windows Vista.


Structura platformei .NET


Am ales platforma .NET in primul rand pentru ca ne ofera instrumente pe care le putem folosi si in alte programe, ofera acces usor la baze de date, permite realizarea desenelor sau a altor elemente grafice si o programare a interfetei grafice (User interface) deosebit de facila. Spatiul de nume System.Windows.Forms contine instrumente (controale) ce permit implementarea elementelor interfetei grafice cu utilizatorul. Tot .NET ofera clase care efectueaza majoritatea sarcinilor uzuale cu care se confrunta programele si care plictisesc si fura timpul programatorilor, reducand astfel timpul necesar dezvoltarii aplicatiilor, cum ar fi type safety-ul, exception handling, validarea datelor din User interface sau interfatarea cu mediile de stocare (baze de date sau XML storage).

1. Limbajul C#


Limbajul C# [4,7,18] este un limbaj modern, orientat pe obiecte, avand o sintaxa asemanatoare cu cea din C/C++ si Java, care permite programatorilor sa construiasca rapid o varietate larga de aplicatii pentru platforma Microsoft .Net, platforma care asigura instrumente si servicii pentru exploatarea sistemelor informatice si comunicatiilor.

Datorita designului elegant orientat pe obiecte, C# este o alegere buna pentru conceperea a variate componente - de la aplicatii la nivel de sistem si pana la realizarea aplicatiilor comerciale de nivel ridicat. Folosind concepte simple de limbaj C#, aceste componente pot fi usor convertite in servicii Web XML, permitand accesarea lor prin Internet de catre orice program ruland pe orice sistem de operare.

Unul dintre scopurile limbajului este acela de a simplifica programarea orientata pe componente. Prin componenta se intelege un ansamblu de clase de obiecte care interactioneaza pentru a indeplini anumite functionalitati.

C# a fost proiectat in paralel cu platforma .NET realizata de catre Microsoft si, de aceea, partajeaza cu aceasta un numar insemnat de caracteristici. De exemplu, oricat de surprinzator ar parea, toate tipurile de date (chiar si cele "primitive", cum ar fi int sau char) au o clasa de baza comuna, object. De aceea spunem despre aceasta platforma ca are un sistem unificat de tipuri.

Alte caracteristici, care apartin in egala masura limbajului si platformei sunt:

- utilizarea exceptiilor pentru semnalarea si tratarea erorilor,

- managementul automat al memoriei - memoria este alocata explicit de catre programator, dar dealocata de sistem cand acesta considera ca este cazul;

- suportul pentru versiuni ale codului - codul se schimba in timp ca urmare a cerintelor care se modifica permanent si in .NET aceasta problema este tratata corespunzator.

C# [4,7,18] (C sharp) este un limbaj simplu cu aproximativ 80 de cuvinte cheie, are 12 tipuri de date predefinite. Acesta permite programarea modulara, structurala si orientata pe obiecte si incoporeaza incapsularea, mostenirea si polimorfismul, acestea fiind  principiile de baza ale C#-ului. C# permite si compilarea in linia de comanda, fara a fi necesara folosirea Visual Studio-ului.

O aplicatie C# [4] este formata din una sau mai multe clase, grupate in "spatii de nume" numite namspaces. Un namespace poate contine mai multe clase, cu nume diferite, dar cu functionalitati diferite. Pot aparea clase cu acelasi nume, conditiia fiind ca ele sa nu fie definite in acelasi namespace.

In cadrul unui spatiu de nume, poate fi definit un alt spatiu de nume, acesta fiind un spatiu de nume imbricat.

O clasa se identifica prin numele complet, adica numele propriu prefixat cu spatiul de nume unde este declarata, cele doua cuvinte fiind despartite prin punct ".". O clasa este formata din date si metode sau functii.

In cazul unei aplicatii complexe, care trebuie partajata, C# ofera posibilitatea segmentarii in mai multe fisiere numite "assemblies". Intr-un assembly se pot implementa spatii de nume.

Este obligatoriu ca doar si numai o singura clasa sa contina un punct de intrare, adica metoda Main.

C# [4,18] a fost proiectat pe ideea ca sistemele moderne sunt construite din componente, furnizand suport direct pentru constructii de componente uzuale, permite extinderea componentelor in vederea reutilizarii si a distribuirii. Nu mai foloseste fisiere header si biblioteci speciale ca si C++.

Constructiile noi din cadrul C# sunt delegati - echivalentul pointerilor la functii si atribute custom, care permit notarea elementelor de cod cu informatii aditionale

Pastreaza facilitatiile din C++ precum: suprascrierea operatorilor, conversii utilizator si transmiterea prin referinta.

Spre deosebire de majoritatea limbajelor de programare, C# nu are o biblioteca runtime proprie, ci foloseste bibliotecile oferite de .NET Framework pentru abslout toate facilitatile necesare.

1.1. AvantajeleC#


- Dezvoltare rapida de aplicatii: Unul din cele mai importante obiective ale Microsoft pentru C# este suport pentru RAD (Rapid Application Development). Aplicatiile internet trebuie sa fie dezvoltate in timp paralel cu dezvoltarea internetului; un nou limbaj trebuie sa fie usor de invatat si depanat, iar codul sa se poata modifica usor. In timp ce VB si Delphi exceleaza in aceste domenii, C++ nu a fost tocmai un succes. Limbajul in sine este complex si greu de manuit si putine biblioteci C++ ofera interfete simple. In plus, managementul manual al memoriei si modelul de type-casting complex fac depanarea la C++ foarte dificila.

In plus, C++ nu protejeaza inerent impotriva potentialelor probleme cauzate de incompatibilitati ale versiunilor. Cu tot efortul depus de Microsoft si Borland, C++ nu este potrivit pentru dezvoltare rapida a aplicatiilor.

- Functionare inter-platforme: Limbajele internet ar trebui sa suporte, prin definitie, o functionare inter-platforme. Deoarece internetul este o retea de sisteme disparate, serviciile trebuie sa functioneze pe o gama larga de hardware si software. In plus, software-ul orientat pe client ar trebui sa ruleze pe mai multe tipuri de dispozitive, inclusiv PDA si telefoane mobile.

O astfel de flexibilitate este o provocare pentru toate limbajele, cu exceptia Java. In special VB produce doar aplicatii Windows pentru masini bazate pe Intel. Delphi, de asemenea , are aceleasi restrictii. Delphi pentru Linux este disponibil deja, dar nu ofera inca suport pentru aplicatii internet. Nici VB, nici Delphi nu indeplinesc conditiile pentru functionarea independenta de platforma.

- Acces la resursele caracteristice platformei: Programatorii cer tot mai mult acces la resursele specifice platformei, spune un studiu Microsoft. Adesea este nevoie de astfel de acces pentru a scrie aplicatii tinta puternice. Visual J++ 6.0 oferea programatorilor acces la Windows API, ceea ce Java de obicei nu permite. In schimb, Java ofera functionare independenta de platforma, prin definirea unui cel mai mic numitor comun standard implementat de orice masina virtuala. Programatorii Java trebuie sa codeze folosind acest standard mai putin puternic, in loc sa profite de serviciile mai puternice oferite doar de anumite platforme. Astfel, Java nu reuseste sa indeplineasca obiectivul de a da acces la resurse specifice platformei.

- Suport pentru platformele COM si .Net: Microsoft a hotarat ca suportul pentru COM si .Net este principalul obiectiv ce trebuie sa-l indeplineasca C#. Nici un alt limbaj nu suporta platforma .Net, deorece era inca in constructie. Spre deosebire de .Net, COM exista de ceva vreme dar, totusi, duce lipsa suportului unui limbaj puternic. Majoritatea limbajelor, incluzand C++ si Delphi, necesita ca programatorii sa mai faca in plus o declarare IDL, o fabrica de clase si impachetari speciale pentru fiecare obiect COM creat.

C# asigura colectarea spatiului disponibil in stilul limbajului Java: una dintre cele mai semnificative caracteristici RAD ale limbajului C# este colectarea spatiului disponibil in stilul limbajului Java. La intervalele arbitrare din timpul momentul executiei, toate obiectele care nu mai sunt referite sunt in mod automat sterse.

C# permite programatorilor sa dezactiveze local colectarea spatiului disponibil, marcand codul cu "nesigur", in situatiile in care este necesara realizarea performantei in timp real.

C# pune in aplicare un tip, un sistem valoare/referinta in stilul limbajelor Java/Delphi. Pentru a sprijini RAD, C# foloseste in continuare pointerul de C, C++ in favoarea tipului de sistem valoare/referinta Java si Delphi. In acest sistem, tipurile predefinite (intreg, real,string, si asa mai departe), enumerarile si structurile, sunt toate tipuri de valoari.

Operatori de comparatie copiaza si verifica valorile acestor tipuri de variabile. Interfetele, clasele si delegate-urile sunt toate tipuri de referinte. Operatorii de comparare copiaza si verifica identitatea obiectelor la care se refera aceste tipuri de variabile.
 Acest tip de sistem este mult mai simplu decat pointerii din C++. Face mai usoara folosirea obiectelor si elimina multe din erorile ce apar in programele de C si C++.

In C#, interfetele sunt declarate separat de clase: C# de asemenea sprijina un model de interfata Delphi si Java, unde interfetele sunt declarate in mod independent de clase. Este opusul modelului C++, unde interfetele sunt clase de baza abstracte. Ambele interfete si clase pot sa mosteneasca interfetele multiple. In timp ce clasele pot sa mosteneasca o singura clasa de baza, interfetele nu pot sa mosteneasca clase deloc.

Acest model evita problema multiplei mosteniri, in care pot aparea conflicte. Nevoia pentru mecanismele complexe ca de exemplu mostenirea virtuala este de asemenea eliminata. Interfata simplificata a C#-ului ajuta la marirea vitezei aplicatiei.

Declaratiile si definitiile metodelor de clasa sunt combinate: C# simplifica dezvoltarea aplicatiilor prin combinarea declaratiilor si definitiilor de metodele clasei,asa cum face Java. Programatorii de C++ trebuie sa mentina separate fisierele pentru declaratii( fisierul antet) si definitii( fisierul de implementare), complicand dezvoltarea procesului software. Usurand programatorul de inca un task, C# descopera automat relatii printre modulele sursei

Acolo unde C++ necesita #include( si Delphi 'uses') C# nu are nevoie de nimic aditional pentru a localiza fisierele inrudite de sursa.

C# foloseste referirile metodelor, numiti 'delegate', in loc de pointerii la metoda: C# foloseste referintele la metode pentru a conecta repede obiectele si metodele. Numite si 'delegate',aceste metode sunt asemanatoare cu tipurilor procedurale ale limbajului Delphi. Hejlsberg a prezentat acel mecanism in Visual J++ desi el nu este parte standard a limbajului Java. Referintele la metoda sunt intrucatva asemanatoare cu pointerii la metoda din C++, dar sunt de departe mult mai elegante, sigure, si folositoare.

Un delegat este un tip de o referinta care tine semnatura metodei. O aplicatie sa poata sa desemneze oricare metoda care un potriveste aceasta o semnatura la o variabila 'delegate'. Cand 'delegate' este invocat, este chemata si metoda asociata..
        Spre deosebire de tipurile de proceduri Delphi, 'delegates' suporta si multicasting-ul. O aplicatie poate sa desemneze multe metode la o variabila 'delegat'; Cand variabila este invocata, sunt apelate toate metodele.

C# foloseste mecanismul Java pentru sincronizarea unui singur fir: Pentru a pune in aplicare sincronizarea firelor de executie in C#, un programator pur si simplu marcheaza blocurile critice de cod. Unde un programator Java foloste cuvantul cheie 'synchronised',un programator de C# foloseste'lock'=lacat. Un mutex protejeaza blocul, permitand numai un fir sa execute codul odata.

Declaratiile suprascrise explicite: in cele din urma, C# foloseste declaratiile de suprascriere explicit pentru a sprijini RAD-ul. Declaratiile de suprascriere explicite sprijina dezvoltarea rapida a aplicatiilor, protejand metoda claselor namespaces si expunand accidental conflictele. 

Un programator al unei o clase C# derivate, trebuie in mod clar sa marcheze o suprascriere de metoda cu cuvantul cheie 'override', asa cum face si in Delphi. Daca o clasa derivata include o metoda care are acelasi nume ca metoda virtuala din clasa de baza, compilatorul nu poate precis sa desluseasca intentia autorului.

Pe de alta parte, un conflict de nume ar putea foarte bine accidental; se intampla in special cand clasa de baza si clasa derivata au fost implementate in mod independent de doi programatori, lucrand poate in companiile diferite. in astfel de caz, compilatorul va da un avertisment si va trata metodele clasei derivate ca o declaratie noua,nu ca pe o suprascriere.

Daca, pe pe de alta parte, programatorul a decis in mod constient sa foloseasca nume pentru o noua metoda dintr-o clasa derivata, care are acelasi nume ca o metoda virtuala din clasa de baza, el sau ea poate includa cuvantul cheie 'new' pentru a impiedica avertizarea data de compilator.

Alte facilitati C

Luand in considerare toate caracteristicile discutate deja, suport puternic pentru RAD pare a fi unul din principalele obiective ale Microsoft pentru C#. Sunt si alte nevoi de dezvoltare importante la care C# trebuie sa raspunda. Acestea includ dezvoltare independenta de platforma, acces la resurse tipice platformei, si suport petru platformele COM si .NET. Sa examinam facilitatile C# prin care se intentioneaza a satisface aceste nevoi.

- Functionare independenta de platforma:  C# rezolva problema functionarii independente de platforma in acelasi mod ca si Java. Compilatorul de C# genereaza un flux de cod binar care este interpretat de .Net runtime. Componenta runtime lucreaza ca si o masina virtuala Java; o aplicatie poate fi rulata pe orice masina pe care a fost portat .Net runtime.

- Accesul aplicatiei la resurse specifice platforme

Am mai lasat un pic de culoare in iris, cat sa aiba o tenta naturala. Mai departe, tot cu o unealta de selectie (marcata cu cercul rosu) am marcat tot ochiul, mai putin corneea. Pentru ca vreau sa-i schimb culoarea.

Dupa ce am selectia definita, aleg functia hue/saturation.

Dupa ce bifez colorize, pot schimba tenta de culoare pentru intreg irisul. Daca inainte erau verzi, am zis sa-i fac putin albastrui. Am tras de primele doua slidere pentru tenta si saturatia culorii.

Si asta e imaginea finala.

Totul despre culori pe qtransform.com




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright