Archivi categoria: .NET

Avoid Memory Leak in .NET

Problem: In .NET for some components like webBrowser component seems that occurs memory leaks, so we see a growth of RAM until we don’t stop our application.

Solution C#
First of all you need to declare this

[DllImport("KERNEL32.DLL", EntryPoint = "SetProcessWorkingSetSize", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
internal static extern bool SetProcessWorkingSetSize(IntPtr pProcess, int dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);

[DllImport("KERNEL32.DLL", EntryPoint = "GetCurrentProcess", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
internal static extern IntPtr GetCurrentProcess();

and later in your code you need to write

IntPtr pHandle = GetCurrentProcess();
SetProcessWorkingSetSize(pHandle, -1, -1);

Solution Vb.NET
First of all you need to declare this

#Region "Stuff for Closing the Processes"
'# to close all the resources
Private Declare Auto Function SetProcessWorkingSetSize Lib "kernel32.dll" (ByVal procHandle As IntPtr, ByVal min As Int32, ByVal max As Int32) As Boolean

Public Sub SetProcessWorkingSetSize()
Try
Dim Mem As Process
Mem = Process.GetCurrentProcess()
SetProcessWorkingSetSize(Mem.Handle, -1, -1)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
#End Region

and later you need to write in your code:

GC.Collect()
If (Environment.OSVersion.Platform = PlatformID.Win32NT) Then
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1, -1)
End If

Reference Link:

Microsoft Forums

[VB.NET] – How to get version at runtime

How to get our sw version at runtime

Private Function GetVersion() As String
Dim versione As String = String.Empty
Dim gi As FileVersionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location)
versione = gi.FileMajorPart & "." & gi.FileMinorPart & "." & gi.FileBuildPart & "." & gi.FilePrivatePart
Return versione
End Function

Installare IIS e ASP.NET

Problema:  Spesso e volentieri dopo aver installato da zero IIS, abbiamo qualche problema con lo sviluppo di pagine in asp, tipici messaggi di errore sono: “Applicazione server non disponibile”

Soluzione:

Armiamoci di console dei comandi e scriviamo (dopo ogni riga premete invio):

net stop w3svc
cd c:\windows\Microsoft.Net\Framework\v2.xxxxxx (controllate voi che versione avete)
aspnet_regiis.exe -ua (effettua la disinstallazione)
aspnet_regiis.exe -i (installa il framework giusto per far girare le pagine asp)
net start w3svc

Ok riavviate il tutto

[.NET] Best of Articles :: Microsoft Smartphone Programming

Questa sorta di libro è un insieme di link, i quali proprio come in un libro partono dalle basi della programmazione fino ad arrivare allo sviluppo di videogames, il tutto utilizzando il framework .NET

Chapter 1: Introduction to the .NET Compact Framework

  1. Fundamentals of Microsoft .NET Compact Framework Development for the Microsoft .NET Framework Developer
  2. What’s New in Smartphone 2003
  3. Develop for Windows Mobile-based Smartphones Using the .NET Compact Framework
  4. An Introduction to Microsoft SmartPhone, and Programming SmartPhone using C#
  5. Design Considerations for Microsoft Smartphone Applications

Chapter 2: The Smartphone User Interface

  1. Write Apps for the Smartphone without Dumbing Down Your UI
  2. Creating a Multiple Form Application Framework for the Microsoft .NET Compact Framework
  3. How to Create a Microsoft .NET Compact Framework-based Image Button
  4. Crafting Smartphone User Interfaces Using .NET Compact Framework
  5. Develop for the SmartPhone Using Techniques You Already Know

Chapter 3: Smartphone Controls

  1. Creating Controls by Hand in the .NET Compact Framework
  2. .NET Compact Framework Sample: Hosting A Native Windows Control
  3. Developing Custom Controls in C# with Smart Device Extensions

Continua la lettura di [.NET] Best of Articles :: Microsoft Smartphone Programming

[.NET] Garbage collector in breve

Domanda: Come funziona il Garbage Collector nel framework .NET?

Risposta:

Il Garbage Collector (d’ora in poi GC) è un processo che si innesca quando un’applicazione tenta di allocare memoria per un nuovo oggetto e lo heap non dispone di sufficiente memoria libera. Il funzionamento, almeno in via teorica, è abbastanza semplice da spiegare: Il GC esamina tutti gli oggetti presenti nell’heap e tiene traccia di tutti quelli che non vengono puntati da alcuna risorsa dell’applicazione; quindi dopo questo processo il GC è abbastanza sicuro che potrà eliminare tutti questi oggetti non referenziati liberando memoria. Ma non finisce qui poich oltre a liberare la memoria il GC si occupa anche di compattare l’heap rendendo quindi disponibile memoria per i nuovi oggetti.

Per maggiori approfondimenti: MSDN