Posts Tagged ‘asp.net’

Carte ASP.NET MVC scrisa de un prieten

Saturday, January 23rd, 2010

Nu am mai publicat demult pe blog. Am fost cam ocupat, în special cu mutatul într-o locație nouă, mai mare și ceva mai potrivită pentru noi acum. O să revin pe acest subiect.

Doresc acum să anunț publicarea pe Amazon a cărții unui prieten din comunitatea programatorilor de .NET din România, Andrei Ignat. Andrei este MVP din 2009, și îi place mult subiectul ASP.NET MVC – deci iată și cartea lui. Există și versiunea în limba Română.

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.

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

Curs ASP.NET – lista închisă

Sunday, September 6th, 2009

Acum câteva zile s-au ocupat cele 25 de locuri pentru cursul de ASP.NET din Timișoara anunțat acum ceva vreme.

Îi rog pe participanți (care deja au primit confirmarea pe email) să vină fiecare cu laptop, și cu următoarele unelte instalate:

  • Visual Studio 2008 cu SP1. Nu contează ediția. Se poate deci cu Express.
  • MS SQL Server 2005 sau 2008. Nu contează ediția. La fel, se poate cu Express.
  • Plug-in-ul de ASP.NET MVC.
    Ne vedem sâmbătă, 12 septembrie începând cu ora 10.

Curs ASP.NET 3.5 si 4.0

Friday, August 21st, 2009

CodeCamp.ro, prin Mihai Tătăran, Microsoft MVP pe ASP/ASP.NET, organizează un curs de ASP.NET 3.5 și elemente din 4.0, destinat programatorilor care preferabil au experiență cu tehnologiile .NET. Cursul se va desfășura pe perioada a 3 săptămâni, în datele de 12, 19 și 26 septembrie (sâmbăta, timp de aproximativ 5-6 ore în fiecare din zile, începând cu ora 10).

Cursul este în întregime gratuit, fiind o activitate de comunitate, iar prânzul va fi asigurat printr-o sponsorizare a Microsoft România. Locația este Timișoara, Republicii 9, sala de training de la Etajul 3, cu sprijinul Incubatorului de Afaceri Software Timișoara.

Având în vedere trend-urile curente, cursul va insista pe modelul de dezvoltare pe client (Javascript, Ajax 4.0) respectiv ce aduce nou ASP.NET 4.0, dar va porni de la fundamente care sunt prezente încă din versiunea 2.0 a lui ASP.NET.

Înscrierile se fac pe email (mihai punct tataran arond hpc-consulting punct ro), în limita a 25 de locuri. Primele 25 de persoane înscrise vor fi cele acceptate la curs, iar în acel moment voi anunța pe blog.

Am fost numit Microsoft MVP

Wednesday, July 1st, 2009

Azi am primit un email în care sunt anunțat că am primit titlul de Microsoft Most Valuable Professional pentru contribuțiile mele în comunitate din ultimul an, pe tehnologia ASP/ASP.NET.

Programul este descris pe site-ul oficial: http://mvp.support.microsoft.com/. Unul din cele mai mari avantaje (așa cum le percep eu), este acela de a fi invitat 1 dată pe an la conferința MVP Summit organizată de echipa din Redmond de la produsul / tehnologia pentru care ai primit nominalizarea.

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).