This is a nice extension for VS2010 to allow you to change the default browser on debugging mode
http://visualstudiogallery.msdn.microsoft.com/bb424812-f742-41ef-974a-cdac607df921
Dotnet general
This is a nice extension for VS2010 to allow you to change the default browser on debugging mode
http://visualstudiogallery.msdn.microsoft.com/bb424812-f742-41ef-974a-cdac607df921
Before I was thinking of rewriting my own logging for my application but after having a careful thought, I decided just to get one from NuGet package instead of reinventing the wheel. I heard a lot about Log4Net and decided to try that out. It’s really simple to get this logging up and running on your application
This is what you need to do:
1. install Log4Net from NuGet
2. Modify your web.config to add a new section and new configuration – In this case, I decided to use FileLogger. but you can have different type logger if you want (e.g event log, console, etc) or you can even build your own one that implemented ILog, this configuration allow you to create a new log file when the log file already reached the limit
3. Code implementation – in this case I decided to register it in my global container and retrieve it later. You need to call log4net.Config.XmlConfigurator.Configure in order for Log4Net to get the settings from web.config – This is very important otherwise you will find that there is no log being generated
calling the logger from my code (controller in this context)
PS: if you want to implement your own logger, then I’d recommend you to have your logger to implement ILog interface and change it through web.config but don’t wrap/call Log4Net inside your custom logger because you don’t want to limit the rich functionality of Log4Net with your custom logger
Another tips, is when you started to add logging in your application then there should be some performance overhead eventhough it is minor. In the example below MyFunctionOutput function will still be called eventhough you disabled the logging on the config, in order to make sure the debugging code only executed
When you want to have the debug/logging omitting the log whenever the logging is enabled then you can wrap around the logging with this property (there are another properties IsErrorEnabled, IsInfoEnabled, etc)
This is a simple tutorial in how to use Dependency Injection using SimpleInjector (You can get this package from NuGet)
In this case, I use SimpleInjector to manage my Data Context – I want my Data Context to be per request (Unit of Work per request). The concept of this dependency Injection is to have a global container where you can resolve your object from
1. Create an extension method to the Simple Injector
2. Modify Global.asax – The class name will be MvcApplication in MVC Project
3. Consume it from the controller – Call the container in the Global.asax to resolve the object (GetInstance function)
I found this benchmark for different IoC in .NET. Personally I’ve been using Unity, Ninject and SimpleInjector. I like SimpleInjector because it is very simple and surprisingly it is quite fast compared with the rest. Performance is just one of the aspect of IoC but it doesn’t always mean everything
http://www.palmmedia.de/Blog/2011/8/30/ioc-container-benchmark-performance-comparison
1. Change the app.config/web.config of your application that calls the WCF service by adding System.diagnostics detail as below
2. Run your application as usual until it throws the error or until the stage where you can reproduce your issue, once you are done, quit your application or take out the diagnostics section from the config file straight away so your log will not be growing too quickly/massively
3. The log file will be called as MyWCFTraceLog.svclog (as we define in the config file) and it will be located on the same folder as the executable – normally it is in the bin folder
4. How to open svclog file? Go to your program files (x86) or program files/Microsoft SDKs/Windows/v7.0A/Bin/SvcTraceViewer.exe
5. SVCTraceViewer will display you the story line of your WCF and it will help you to pinpoint the underlying issue
I tried to install umbraco in shared webhosting from the control panel but instead the error that I’m getting is
The application could not be installed: Error occured in Web App Gallery module
From my research it seems that there is an error in the Web App Gallery module, some article it says that the Web App Gallery module is out of date. But this is shared web hosting so there is nothing much I can do to fix this. So how to install umbraco manually?
1. Create a blank DB in your SQL Server 2008 for your Umbraco
2. Create a SQL User for the Umbraco DB in the step 1
3. Download umbraco from http://umbraco.codeplex.com
4. Extract the content to the downloaded package to the root of your domain wwwroot folder via FTP
5. Make sure the default website is already created
6. Make sure the .NET framework is being set to .NET 4.0 (Integrated)
7. Run the installation through www.yourdomain.com/install/default.aspx
8. Follow the steps, it will ask you the database name and the database user along the way
9. Once the installation finished, please make sure you delete the install folder for security purpose
I have a function that is used to save a file base on the user input (basically the user can type whichever filename and whichever path) and the code is not handling the invalid filename or path hence what it does is just throwing .NET general exception like below
To fix it I created a new function that basically get the invalid path characters and invalid filename characters from the system and remove invalid character in the input (file name). By doing this the user does not need to replace the character.
If you use Path.GetFileName it will actually remove the illegal character automatically but the way it removes the illegal character is so aggressive
e.g Path.GetFileName(“c:\workflow\Clearance:Photo ID Badge:Access abc-123.ist”) will return Access abc-123.ist
Well this problem itself will give different argument like why do we let people put the garbage character in?and why don’t we give the validation?or the other argument is “why do we need to change the input from the user without letting them knowing it?
236 ”’ <summary>
237 ”’ this function is used to clean up invalid/illegal characters from filename and replace it with blank
238 ”’ </summary>
239 ”’ <param name=”FileName”></param>
240 ”’ <returns></returns>
241 ”’ <remarks></remarks>
242 Private Function CleanFileName(ByVal FileName As String) As String
243 Dim invalid As String = New String(Path.GetInvalidFileNameChars()) + New String(Path.GetInvalidPathChars())
244 Dim originalPath As String = FileName.Substring(0, FileName.LastIndexOf(“\”) + 1)
245 FileName = FileName.Substring(FileName.LastIndexOf(“\”))
246
247 For Each c As Char In invalid
248 FileName = FileName.Replace(c.ToString(), “”)
249 Next
250
251 ‘readd the path
252 FileName = originalPath + FileName
253
254 Return FileName
255 End Function
CLR Profiler can be used to analyse how your object is allocated in memory and which object has taken the most memory. It also can be used to detect memory leak
To download CLR profiler for .NET 2.0 please visit http://www.microsoft.com/download/en/details.aspx?id=13382 , there is another version for .NET framework 1.1
-Extract the file into your desired location
-you also need to run “regsvr32 ProfilerOBJ.dll” otherwise you will get dialog message that mentioned it’s waiting for the CLR and you will not get any result
– Run the CLRProfiler.exe in Binariesx86 if your app is 32 bit and Binariesx64 if your app is 64 bit
For profiling windows app, you can do the following steps:
1. Select the exe file
2. Do stuff/interact with your application
3. Once you are finished then you can close your application or select “Kill Application”
4. Upon completion it will give you the screen below
For profiling ASP.NET app, you can do the following steps:
1. Select Profile ASP.NET from file menu
2. It will restart your IIS with the necessary trace
3. Select “Start ASP.NET”
4. Once you are finished then select “Kill ASP.NET”
5. It will restart the IIS and remove the trace added before
6. Upon completion it will give you the screen below
*You can use this for service as well –
This is the information for GC
If you open your WCF/ svc file in your localhost through browser and it just display blank page then what might happen is you don’t have handler associated with svc extension
To verify it, go to your IIS and go to IIS Handler Mappings and try to find an svc extension entry, but if you couldn’t find extension SVC exists on the list, then you can remap/re-add the svc extension by running
C:\Windows\Microsoft.NET\Framework64\v3.0\Windows Communication Foundation\ServiceModelReg.exe –i
*if you are still using 32 bit then you just need to replace Framework64 with Framework
First method is to use the “Using” keyword which is quite clean and simple
using (IDisposable obj = new DataTable())
{
//do your logic with obj variable
}
Second method is to use Try and finally keyword
IDisposable obj = null;
try
{
obj = new DataTable();
}
finally
{
if (obj != null)
{
obj.Dispose();
}
}
Powered by WordPress & Theme by Anders Norén