Posts Tagged ‘Codecamp’

Codecamp Bucuresti – follow up

Thursday, April 29th, 2010

La București am avut o serie de 5 prezentări, împreună cu Andrei Ignat, Florin Toader, Raul Andrișan și Petru Jucovschi.

Am pus pe Skydrive resursele mele si ale lui Florin. De asemenea, avem aici fotografii din timpul evenimentului.

Dupa Codecamp-ul de la Timisoara

Wednesday, March 24th, 2010

Pentru noi a fost foarte interesant să organizăm acest eveniment. Pentru Timişoara, o prezenţă de peste 50 de persoane este ceva de reţinut :-), mai ales că inclusiv la laboratoare am avut aproximativ 40 de participanţi – sâmbătă, într-o frumoasă zi de primăvară cu mult soare, la ora 16.30 lumea scria cod :-).

Am citit şi feedback-ul participanţilor şi în general este foarte pozitiv. Un aspect am reţinut eu personal (deşi nu apărea menţionat, îl simt eu), că ar fi trebuit mai mult timp pentru laboratoare. Poate data viitoare :-).

Prezentările şi exemplele pot fi descărcate de aici. Aplicaţia lui Raul poate fi găsită şi aici: http://studentclub.ro/raul/Default.aspx. Fotografii de la eveniment aici.

Codecamp la Timisoara

Saturday, February 27th, 2010

Am pus un anunţ pe Codecamp.ro despre un eveniment organizat de noi la Timişoara. Link-ul direct este aici: http://codecamp.ro/post/2010/02/25/Codecamp-la-Timisoara.aspx. Vă rugăm să vă înscrieţi, folosind detaliile aflate la post-ul original.

Interviu cu mine la Tech Ed 2009

Friday, February 5th, 2010

Sunt destul de tânăr în programul MVP, și nu sunt încă obișnuit cu totul, dar am observat la TechEd în Berlin că persoana din MS care are ca responsabilitate coordonarea programului lua interviuri la MVP-i care doreau acest lucru. Pentru ei scopul este să promoveze cât mai bine programul de MVP, de aceea mi-a și pus întrebări de genul: ”Cum ai ajuns să lucrezi în IT?” / ”Cu ce te ocupi zi de zi?” etc – cumva să vadă cei non-MVP că nu e foarte greu de atins acest obiectiv; pe de altă parte, evident că și eu aveam interesul să promovez ceea ce fac în comunitate, și in plus eram curios :-).

Nu a ieşit chiar rău, mai ales că am reuşit să promovez 2 site-uri din .ro:

embedded by Embedded Video

Inregistrare Live Meeting – Performanta cu Entity Framework

Tuesday, October 20th, 2009

Înregistrarea prezentării din data de 12 octombrie poate fi vizualizată de pe site-ul curent, aici.

Live Meeting – Performanta in Entity Framework

Monday, October 5th, 2009

Întâlnirea de azi (http://www.hpc-consulting.ro/index.php/2009/09/30/performanta-in-entity-framework-live-meeting/) s-a reprogamat pentru săptămâna viitoare (12 octombrie, de la ora 17.00). Link-ul unde poate fi accesată întâlnirea este acesta: https://www.livemeeting.com/cc/mvp_no_voip/join?id=4C4M9M&role=attend&pw=z%23zZ%7E74%2Bj .

Curs ASP.NET – resurse

Friday, October 2nd, 2009

Aici pot fi găsite resursele folosite în timpul cursului de 3 zile organizat de Codecamp prin Mihai Tătăran: http://cid-058f9d4d139fdb21.skydrive.live.com/self.aspx/.Public/CodeCamp%20ASP.NET%20Curs%20sept%202009.zip .

Integrarea tehnologiilor noi in arhitecturi de aplicatii web (Entity Framework, Ajax 4.0)

Thursday, October 1st, 2009

Un nou Live Meeting, în data de 12 Octombrie cu începere de la ora 16.00 și până pe la 17.00.

Pentru participare, accesați acest link: https://www.livemeeting.com/cc/mvp_no_voip/join?id=S5C7ZB&role=attend&pw=Gk%22xJ5RnD .

Tutorial Ajax 4.0 si ADO.NET Data Service

Sunday, September 13th, 2009

Săptămâna viitoare, în 18 septembrie 2009, voi fi la Webstock unde trebuie să prezint câteva laboratoare. Fiindcă deja am pregătit conținutul, m-am gândit să il fac public și aici pe blog.

Arhiva asociata tutorialului contine o solutie Start, alta Finish, respectiv baza de date.

Microsoft Ajax 4.0 si ADO.NET Data Services

Introducere

Acest laborator va prezenta doua tehnologii Microsoft: Ajax 4.0 si ADO.NET Data Services.

Ajax 4.0

Sau mai pe larg Microsoft Ajax versiunea 4.0 (aflata in acest moment in stadiul de Community Technology Preview), este o biblioteca open source initiata de Microsoft si disponibila aici: http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=32770 . Aceasta biblioteca inseamna de fapt o serie de fisiere Javascript care permit crearea de cod pe client (in browser) care manipuleaza date ce vin de undeva de pe un server. Ajax 4.0 presupune deci colaborarea cu alte tehnologii de tip servicii web (sau ceva asemanator), care sunt in stare sa “aduca” pe client date aflate undeva pe un server, respectiv sa le “trimita” inapoi pentru modificarile de rigoare.

ADO.NET Data Services

Este o tehnologie de tip serviciu web, mai exact un tip de serviciu Windows Communication Foundation specializat. ADO.NET Data Services este util pentru a comunica intre un server si un client, transmitand peste HTTP date in ambele sensuri. Intr-o arhitectura multi-strat cu 3 nivele: (1) User Interface, (2) Business Logic, (3) Data Layer, ADO.NET Data Services se afla pe nivelul (2).

Mai multe despre Data Services: http://msdn.microsoft.com/en-us/data/bb931106.aspx .

Acest serviciu specializat “stie” sa expuna peste HTTP datele care vin dintr-o sursa foarte bine determinata, conform interogarii care este realizata direct din URL-ul de acces la serviciu. Daca ADO.NET Data Services este pe nivelul (2), atunci in spate, pe nivelul (3) trebuie sa fie un strat de acces la baza de date realizat cu LINQ to SQL (http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx )sau Entity Framework (http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx ).

In continuare vom realiza un exemplu care porneste de la o baza de date, realizeaza un Data Layer cu tehnologia Entity Fraewmork, apoi expune datele peste HTTP folosind ADO.NET Data Services, ca pe client sa foloseasca Ajax 4.0.

Exercitiu

Prerequisites

Exemplul presupune existenta unei baze de date numita FinancialDemo, atasata intr-un server de baze de date MS SQL Server (2005 sau 2008). Fisierele bazei de date sunt prezente in folderul laboratorului.

De asemenea, este nevoie de Visual Studio 2008 cu Service Pack 1.

Pasul 1

Deschideti cu Visual Studio 2008 solutia aflata in folderul “Start”.

Observati in Visual Studio folderul numit “Javascript”, care contine biblioteca Ajax 4.0.

Observati fisierul numit “Model1.edmx” – cel care contine modelul de date, construit pe baza tehnologiei ADO.NET Entity Framework pornind de la o baza de date.

Pasul 2

Acum vom crea serviciul ADO.NET Data Service.

1. In fereastra Solution Explorer (meniul View -> Solution Explorer), click dreapta pe proiect (numit AjaxAdoNetDataServices), apoi Add -> New Item.

clip_image002

2. Selectati ADO.NET Data Service, si dati-I numele “BusinessService.svc”.

clip_image004

3. Salvati solutia.

4. Deschideti fisierul BusinessService.svc.cs.

clip_image006

5. Inlocuiti comentariul /* TODO: put your data source class name here */ cu numele clasei care reprezinta modelul de date Entity Framework, FinancialDemoEntities.

6. Decomentati linia // config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead); si modificati modul de acces pe serviciu (proprietatile de securitate).

clip_image008

7. Compilati solutia (meniul Build -> Build Solution).

8. Rulati cu serviciul ADO.NET Data Service. Click dreapta pe BusinesService.svc, apoi Set as Start Page.

clip_image010

9. Porniti proiectul (Ctrl + F5). Rezultatul:

clip_image012

10. Testati serviciul cu diferite interogari:

a. http://localhost:30343/BusinessService.svc/Company

b. http://localhost:30343/BusinessService.svc/Company?$top=3

c. http://localhost:30343/BusinessService.svc/Company(1)/Name

Pasul 3

Acum ne vom ocupa de interfata.

1. Adaugati in solutia Visual Studio un fisier de tip Stylesheet. Click dreapta pe proiect, Add -> New Item -> Stylesheet.

clip_image014

2. In fisierul nou creat, introduceti codul urmator:

body

{

}

.sys-template

{

display: none;

}

.odd

{

background-color:Gray;

}

.selected

{

background-color:Lime;

}

3. Deschideti fisierul Default.aspx. In sectiunea <head></head>, introduceti referintele catre fisierele Javascript care compun biblioteca Ajax 4.0, respectiv catre fisierul CSS. Sectiunea head trebuie sa arate asa:

<head runat="server">

<title>Ajax si ADO.NET Data Services</title>

<link href="Stylesheet1.css" type="text/css" rel="Stylesheet" />

<script type="text/javascript" src="Javascript/MicrosoftAjax.debug.js"></script>

<script type="text/javascript" src="Javascript/MicrosoftAjaxTemplates.js"></script>

<script type="text/javascript" src="Javascript/MicrosoftAjaxAdoNet.js"></script>

</head>

4. Modificati tag-ul body pentru a avea referinte la anumite namespace-uri Javascript:

<body xmlns:sys="javascript:Sys" xmlns:code="http://schemas.microsoft.com/aspnet/code"

xmlns:dataview="javascript:Sys.UI.DataView" sys:activate="*">

5. Creati interfata html pentru a afisa date care vin din baza de date. Anume, un tabel, respectiv un div pentru a afisa detaliile randului selectat la un moment dat in tabel.

a. Tabelul:

<div id="allCompanies" style="float: left; width: 400px">

<h2>

Companies</h2>

<table cellspacing="0" cellpadding="0" style="border-style: ridge">

<thead>

<tr>

<th>

Id

</th>

<th>

Name

</th>

</tr>

</thead>

<tbody id="companiesView" class="sys-template">

<tr sys:command="select" class:odd="{{ $index % 2 != 0 }}">

<td style="width: 50px; border-style: ridge">

{binding Id}

</td>

<td align="left" style="width: 250px; border-style: ridge">

{binding Name}

</td>

</tr>

</tbody>

</table>

</div>

b. Div-ul cu detalii:

<div id="companyDetails" class="sys-template" style="vertical-align: top">

<h2>

Company details</h2>

<input type="text" id="Id" value="{binding Id}" readonly="readonly" />

<input type="text" id="Name" value="{binding Name}" />

<br />

<input type="button" value="Update" sys:command="gaga" />

</div>

6. In sectiunea head introduceti urmatorul cod Javascript care realizeaza comunicarea cu serviciul ADO.NET Data Service, respectiv populeaza controalele de interfata cu date.

<script type="text/javascript">

var dataContext;

function pageLoad() {

dataContext = $create(Sys.Data.AdoNetDataContext,

{

serviceUri: "BusinessService.svc"

});

var companiesView = $create(Sys.UI.DataView,

{

dataProvider: dataContext,

fetchOperation: "Company",

fetchParameters: { $top: 10, $orderby: "Name" },

autoFetch: "true",

selectedItemClass: "selected",

initialSelectedIndex: 0

},

null, null, $get("companiesView")

);

var companyDetails = $create(Sys.UI.DataView,

null,

{

command: companyCommand

},

null, $get("companyDetails"));

$create(Sys.Binding,

{

source: companiesView,

target: companyDetails,

path: "selectedData",

targetProperty: "data"

});

}

function companyCommand(e, args) {

dataContext.saveChanges();

}

</script>

7. Setati Default.aspx ca pagina de pornire (Click dreapta pe Default.aspx, Set as Start Page), si rulati aplicatia (Ctrl + F5). Iata aplicatia:

clip_image016

8. Selectati diferite randuri din tabel. Observati cum se modifica detaliile din dreapta.

9. Modificati numele unei companii. Observati cum la parasirea <input>-ului, numele din tabel se modifica.

Apasati Update dupa ce ati modificat o companie (sau mai multe). Inchideti aplicatia si rulati din nou. Observati cum s-a realizat si salvarea in baza de date.

Lista prezentei la cursul de ASP.NET

Friday, September 11th, 2009

Există posibilitatea să nu fi trimis confirmarea la toată lumea, sau sa nu fi ajuns la toți. Așa că pun aici tabelul cu persoanele care au apucat să se înscrie la cursul anunțat aici:

Nume

Companie

Data inscriere

Cristina Ionita ACI Worldwide 21-Aug
Borlean Patricia Alcatel Lucent 21-Aug
Ionescu Daniel Andrei Berg-Computers 27-Aug
Vlad Guzei Berg-Computers 27-Aug
Chirtoc Adi Byty 21-Aug
Alin Taranu Ciao De 21-Aug
Mirela Olariu Ciao De 21-Aug
Marco Radosavlevici Ciao De 24-Aug
Stan Vasile Ciprian Continental 25-Aug
Filip Ivan Diartis 28-Aug
Bandea Simona Oce 21-Aug
Dan Tiberiu Oce 21-Aug
Doru Mihai Oce 21-Aug
Fallon Anita Oce 21-Aug
Mezei, Flavia-Octavia Oce 21-Aug
Andoniu, Ovidiu-Cristinel Oce 21-Aug
Diana Tataran Oce 21-Aug
Danciu Melania Oce 21-Aug
Spantioc, Cosmin-Radu Oce 27-Aug
Pirte Bogdan-Augustin X3Studios 21-Aug
Constantin-Marius Stanescu   24-Aug
Dani Costea   25-Aug
Virginia Fagadar-Ghisa Berg-Computers 28-Aug
Babescu Maximilian Live Soft 29-Aug
Roxana Iancu   31-Aug