C# – VB.NET

Most hogy probaltam a C#-ban megirt kodot VB-re atirni jottem ra, hogy meg a 3.5-os VB.NETben sincs automatikusan implementalt property…
Automatically implemented properties
Auto-implemented Properties in VB and C#
Igaz, hogy Delphiben sincs, de nem is nagyon van ra szukseg. A VB-nek viszont nagyon kene.

Lassuk mit tudnak az automata konverterek:
Az elso viszonylag jol hasznalhato, bar meg nem volt idom tesztelni
Convert C# to VB.NET
a tobbi amit eddig talaltam ennel gyengebb:
converter.telerik.com
KamalPatel.Net – Convert C# to VB .NET

Analizis, Debugging

Az elkeszult projektet nem art neha ellenorizni:
ASP.NET Memory Leak Case Study: Sessions Sessions Sessions
Production Debugging for .NET Framework Applications
Windows Debuggers: Part 1: A WinDbg Tutorial

Ha valakinek nincs kedve debuggerekkel szorakozni akkor a jo kis adminisztratori eszkoz is szolgalhat hasznos informaciokkal: Admin. Tools – Performance Monitor
A titok a megfelelo szamlalok kivalasztasaban van. (hdd-hez a disk queue-t ajanlottak)
.NET CLR Memory – aspnet_wp – # Bytes in all Heaps
ASP.NET Applications – Cache API Entries
Process – aspnet_wp – Private Bytes

.NET Framework General Reference: Memory Performance Counters
.NET Framework Developer’s Guide: Performance Counters for ASP.NET

MSSQL 2005 + .NET

Ha valaki sql-lel foglalkozik akkor tudnia kell mi az az SQL Injection, es hogy hogyan lehet vedekezni ellene.
pl. php + MySQL : mysqli_real_escape_string()
php + PostgreSQL : pg_escape_string()
tovabbi leiras :addslashes()
(html generalasakor ajanlatos megnezni a htmlspecialchars(), htmlentities() fuggvenyeket)

MSSQL-ben tobb lehetoseg is van az escape character hasznalata mellett:
How To: Protect From SQL Injection in ASP.NET
Az SqlParameter Class hasznalata akkor is jo, ha sql queryben datetime tipusokat kell osszehasonlitani (es nem tudjuk milyen istenverte formaban varja tolunk a datumot)

SqlDataAdapter adapter = new SqlDataAdapter(
"SELECT * FROM Food WHERE expdate < = @expd", connection); adapter.SelectCommand.Parameters.Add("@expd", SqlDbType.DateTime).Value = DateTime.Now;

a kapcsolatok megfelelo kezelesere erdemes elolvasni ezt:
C# Using Statement

Adatbazis kapcsolat tarolasa web.config-ban (mert ott jo, vagy machine.config-ban):
How to: Read Connection Strings from the Web.config File
vagy ConfigurationSettings.AppSettings[...]

(MS)SQL database 101

Az adatbazis tervezesrol nekem azt mondtak, hogy: Tapasztalat kell hozza. Az informatika mas teruletein szinte mindenhol fiatalok dolgoznak, egyetemistakat vesznek fel. Adatbazistervezesre meg kozepkoruakat, idosebbeket.
Bar az egyetemen tanultam ket felevet, es azota is gyakran hasznalom, de tudom, hogy nem vagyok szakerto. Sok mindent meg lehet tanulni otthon, de amikot tobb gigas vallalati adatbazisokkal kell dolgozni az mas erzes. Viszont vannak pillanatok amikor meglepodok, hogy mennyire nem ertenek adatbazisokhoz emberek akiknek ezzel kell foglalkozni munkahelyukon.
Szoval itt van egy kis alap, hogy legalabb latszolag rendes legyen a megtervezett adatbazis, ha egy hozza nem ertot rakenyszeritenek ilyen feladatra.
A tobb fele karakteres adattipus kozotti kulonbsegek:
(n)(var)char
What’s the difference between char,nvarchar,ntext and nvarchar(max) ? (SQL2005)
Choosing SQL Server 2000 Data Types

VS 2008 asp dotNET bugs?

OK, szoval regen VS 2003.NET -et hasznaltam, most meg 2008-at. Olyan erzes mint amikor uj helyre koltozik az ember. Semmit se talal elsore, minden mashol van, es tiszta frusztraltan erzi magat.
Szoval a multkori bejegyzesemben irtam/hivatkoztam az autoEventWireup kikapcsolasara mint teljesitmenyjavito eljaras. Nos ez nehezebbnek bizonyult mint azt vartam. VS 2003-ban .NET 1.1-ben ez tiszta ugy volt. olyan szep kodot generalt a Visual studio:

/// <summary>
 /// Summary description for AdminResurce.
 /// </summary>
public class AdminResurce : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid DataGridResource;
...
#region Web Form Designer generated code
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: This call is required by the ASP.NET Web Form Designer.
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// Required method for Designer support - do not modify
  /// the contents of this method with the code editor.
  /// </summary>
  private void InitializeComponent()
  {   
   this.DataGridResource.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridResource_ItemCommand);
...
this.Load += new System.EventHandler(this.Page_Load);

Most se InitializeComponent, se OnInit, minden oldalra automatikusan beirja az AutoEventWireup=”ture”-t, ha kikapcsolom, akkor persze nem mukodik a Page_Load (csak ha kezzel letrehozom a megfelelo OnInit kodot). Ha Website-hoz kapcsolodok, es ott hozok letre webformot, akkor meg csak a kontrollokat se latom (amiket Web Application projectnel a *.aspx.designer.cs-be pakol: protected global::System.Web.UI.HtmlControls.HtmlForm form1; )
A templatek itt talalhatok : C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache\Web\CSharp\1033\WebForm.zip
Szandekosan butitja a microsoft a visual studiojat, hogy tobb programozasi konyvet, meg tanfolyamot tudjon eladni?

autoEventWireup is hard-coded into templates making changing the default stupidly time-consuming
http://blog.dantup.me.uk/2007/08/autoeventwireup-still-broken-in-visual.html