Posts Tagged ‘ajax’

LiveMeetings – Ajax 4.0

Wednesday, March 3rd, 2010

Nu demult am avut 1 live meeting despre ASP.NET 4.0 în general. Săptămâna viitoare doresc să intru puțin în detalii pe subiecte legate de Ajax 4.0, deci vă invit să vă înscrieți la 2 live meeting-uri: Client Templates si Data Binding in ASP.NET Ajax 4.0 (9 martie, orele 16 – 17) respectiv Realizarea de operatii CRUD in ASP.NET Ajax 4.0 (11 martie, orele 16 – 17).

TechEd Europe 2009

Tuesday, November 10th, 2009

Sunt și eu la Berlin. TechEd-ul de anul acesta a anunțat câteva lucruri interesante:

  • Achiziția Teamprise. Adică, niște add-in-uri de Eclipse (și toate sculele bazate pe Eclipse) pentru Team Foundation Server. Mișcare deșteaptă, dacă ținem cont exact ce unelte de dezvoltare (și de la ce firme :-) ) sunt bazate pe Eclipse.
  • Lansarea Exchange Server 2010.
  • CTP-ul de SQL Server 2008 R2.
  • Evident, discuții despre cloud computing, mai exact Azure. Dacă anul trecut la TechEd se vorbea foarte abstract despre acest subiect, acum s-au prezentat chestiuni mult mai practice: exemple de aplicații, scenarii posibile, etc.
    Eu personal sunt interesat anul acesta de subiecte ca: Team Foundation Server, Agile, Scrum (vreau să implementăm la noi TFS și încă nu mi-e clară metodologia pe care o să mergem). Din fericire, sunt destule sesiuni și destui oameni deștepți pe aceste subiecte, așa că probabil voi pleca de aici lămurit.
    Am apucat azi să pun mâna și pe ceva tehnologie, și am rămas plăcut impresionat de o evoluție pe partea de ASP.NET / Ajax: Ajax Navigators respectiv Ajax Connectivity. Sunt 2 idei interesante, dar din păcate dacă am înțeles bine nu funcționează decât în IE8.

Închid, că mi-e foame și sete de o bere.

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.

Microsoft DevDays – mai 2009

Wednesday, May 27th, 2009

Mi-a făcut o plăcere deosebită sa merg în turneu cu Petru și Zoli (respectiv cu Florian în unele locații) pentru conferințele DevDays. In special pentru că în Iași nu am fost niciodată până acum, spre rușinea mea :-).

Eu am avut sarcina de a vorbi despre:

  • Accesul la date folosind ADO.NET Entity Framework
  • ASP.NET + Ajax + Javascript vs Silverlight
  • Aplicații RIA cu Silverlight

Am pus aici materialele pe care le-am folosit în prezentări. Sunt slide-uri și exemple (soluții Visual Studio).

Follow up Live Meeting – ASP.NET vs Silverlight

Thursday, March 26th, 2009

Discuția despre Pro și Contra ASP.NET + Ajax + Javascript pe de o parte respectiv Silverlight pe de altă parte (pe ce cale aș merge într-un nou proiect, de exemplu) s-a putut urmări live aici, și tot acolo poate fi găsită înregistrarea.

Pe scurt, am vorbit despre câteva chestiuni legate de aplicațiile web de business:

  • RIA
  • SEO. Deși mai puțin se aplică la aplicațiile business.
  • Arhitectură și în special modul în care mă conectez la o sursă de date.

Live Meeting – decizii legate de aplicațiile web

Saturday, March 21st, 2009

Joi 26 martie, între orele 13 și 15 voi avea o prezentare numită ”Dezvoltarea unei aplicații web: ASP.NET + Ajax + JavaScript sau Silverlight?”, în care voi face o analiză a fiecărei dintre cele două abordări, cu plusuri și minusuri pentru fiecare, în scenariul dezvoltării unei aplicații web.

Link-ul pentru prezentarea live (respectiv înregistrată ulterior) se află aici. Nu este anunțată pe blog-ul lui Petru și nici în newsletter-ul de la Microsoft,  pentru că ideea mi-a venit ieri când chiar îmi puneam această problemă în vederea unui proiect nou pe care e posibil să îl abordăm în H.P.C. Consulting.

Dezvoltarea aplicațiilor ASP.NET cu Ajax – Live Meeting

Thursday, March 19th, 2009

Ieri (18 martie) am avut o nouă prezentare cu Live Meeting de aproximativ 1 oră în care am discutat despre:

  • ADO.NET Data Services.
  • Ajax 4 Preview 4. Binding, live binding, client templates, etc.
  • Accesul din Ajax (cod JavaScript) la un serviciu ADO.NET Data Services, atât pentru get cât și pentru update.
  • IE 8 Developer Tools și Fiddler – două unelte foarte utile pentru un programator web.

    Înregistrarea evenimentului se află aici. Codul și prezentarea aici: http://hpc-consulting.ro/download/Live Meeting 18 mar 2009.zip.

    Nu uitați de evenimentele deja anunțate http://ronua.ro/CS/blogs/petru/archive/2009/03/13/evenimente-pentru-dezvoltatori-martie-2009.aspx, respectiv în general să urmăriți blog-ul lui Petru pentru astfel de anunțuri.