Wednesday, October 23, 2013

Doing a LoC count in Visual Studio

I just wanted to know how many lines of Code do I have in my Solution. Here's a nice trick posted by a fellow blogger that uses Regular Expressions. Way to go! Quick and Easy!

http://blog.schuager.com/2009/01/line-count-in-visual-studio.html

Basically, search for the Following Regex in the solution:

^~(:Wh@//.+)~(:Wh@\{:Wh@)~(:Wh@\}:Wh@)~(:Wh@/#).+

Wednesday, October 2, 2013

Using Razor syntax with Javascript

Following approach was done to have the razor syntax in Javascript. Wrapping the javascript <text> with does the job!

@if(Model!=null){
<text>"<span style="color: #76768d; font-size: 14px; font-weight: bold;">@Model.title</span>" +</text>
}


Although the code above looks like Razor syntax placed in HTML, this has been used in Javascript and works perfect!

Friday, September 20, 2013

Using CKEditor in your MVC project

CKEditor is an Amazing Rich Text Editor to be used in your MVC Applications. I had implemented that one of my forms and was bent over to implement it throughout the project, replacing the existing editor which was little buggy.

Implementation has been made very easy with the release of the newer version of CKEditor 4

First you need to use the HTMLHelpers to create a Text Area:

@Html.TextArea("controlid", "controlvalue")   


Then place your CKEditor javascript script below the control. This will replace the TextArea with the Editor

CKEDITOR.replace('controlid', {
                uiColor: '#808080',
                height: '120px',
                toolbar: [
           ['Bold', 'Italic', 'Underline', '-', 'NumberedList', 'BulletedList', '-', 'Link', 'Unlink', '-', 'Image', 'Table'],
           ['FontSize', 'TextColor', 'BGColor', 'Source'],
                //                                ['JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock']
          ]
            });


Form submission is magically taken care of by MVC Approach on postback

But all that was not plain and simple on Ajax based submissions. I had some trouble implementing it on one of the Ajax based forms. This is what I did based upon the CKEditor API
the click of the submit button.

$(document).ready(function() {

    $("#btnSubmit").click(function(){

        $("#controlid").val(CKEDITOR.instances["controlid"].getData());

    });

});


And I had Success at last!

Wednesday, August 7, 2013

Using Jquery and JQuery UI inside AJAX UpdatePanel

I wanted to call a JQuery "alert" on the Click event of a button, which was also a Trigger to an Update Panel. My condition for the alert was in code behind. For those who experienced this, JQuery/javascript doesn't work nicely with UpdatePanel

Searching on Google led me to the solution below and it works as expected!

protected void btnPrevious_Click(object sender, ImageClickEventArgs e)
     int curpageindex=-1;
     if ((int)ViewState["Pageindex"] > 0)
     { 
         //Your code
         BindData();
     }
     else if ((int)ViewState["Pageindex"] == 0) 
         ScriptManager.RegisterStartupScript([updatePanelId], this.GetType(), "click", "firstrecord();", true);                       }
 
Please bear in mind that ScriptManager is the Ajax ScriptManager that has different overloading Parameters, one of them being a reference to the UpdatePanel.

Here's a nice explaination of how this works.

Monday, June 3, 2013

Using Mercurial as a preferred Source Control

I needed a Source Control to track changes in my projects, I have been hearing good things about Mercurial and its integration into Visual Studio 2010 with the tools like TortoiseHg and VisualHg. Not to mention that Mercurial is an Open Source software and available for free download. Mercurial is a Distributed Version Source Control (DVCS) where each client has entire copy of the repository.

Got a jump start on Installing and integrating Mercurial with a great video here, which shows all the installing as well as configuration process.

Mercurial can be downloaded here.

Its fun to work with Mercurial using the Command line too, though the GUI does take care of your needs. Here's a neat list of commands to execute your changes:

http://searchco.de/lists/list-of-mercurial-commands

One of the important commands that I would like to remember is in below example, which fetches me the changeset along with the filename. I can also specify the range of the changeset. In the example shown, the command will fetch the changes between the changesets 1 and 10.

hg log --stat -r 1:10


I also would like to include the .hgignore file which is quite handy for committing the changes to the repository.

# use glob syntax
syntax: glob

*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.[Cc]ache
*.ilk
*.log
*.lib
*.sbr
*.scc
*.DotSettings
[Bb]in
[Dd]ebug*/**
obj/
[Rr]elease*/**
_ReSharper*/**
NDependOut/**
packages/**
[Tt]humbs.db
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.resharper
*.ncrunch*
*.ndproj


Enjoy!

Wednesday, May 8, 2013

Passing down a string with an apostrophe to javascript function

Its like back to  Javascript 101, but sometimes its forgotton and takes up some time to identify whats wrong with the script. Thats what happened to me. I wasn't sure how would I parse my string. Finally got an answer.

 Edit Content

The escape character takes care of the apostrophe, and the HtmlDecode takes care of any browser based compatibility issues

Tuesday, April 16, 2013

Connecting to a Remote SQL Server and Import Data from your local SQL Server (2008 Express)

I have a remote database sitting on VPS and I need to transfer the data to the remote server. All I do is first register/connect the remote Sql server in my Management Studio. For this, enter the provided server name using the registered domain name (or IP Address)  along with the provided port number. Append the Sql server name (I appended \SQLExpress).

Doing this will enable you to connect the remote server in your local management studio (assuming you enter the correct authentication details for username/password !).

Before you go ahead with the next step of doing data migration, make sure first you run the database scripts so that your indexes/foreign keys are intact. Once this is done, you can use the import/export wizard to export data from your local machine to the remote server. A tiny trick is to use the import wizard from the destination database rather than using the export wizard from the source database. This will ensure your configuration for destination database is aptly configured.

Sorry this is very bland write-up without any screenshots or proper explanation, but hopefully I'll provide them when I have more time.



Thursday, April 4, 2013

Profiler for SQL Express

I have SQL Express currently installed on my machine. Since I am working on the "free" version, the package doesn't include SQL Profiler. I highly depend on SQL Profiler to trace down queries. What to do now? Well, Google is my friend! I found this utility, available on Codeplex. Download and use it!

Tuesday, April 2, 2013

Links to Bookmark and Follow up

Some Notes on Semantic Versioning. Follow up on this, Usman! 

http://semver.org/

The World of Entity Framework :

http://msdn.microsoft.com/en-US/data/ee712907

Entity Framework Version History :

http://msdn.microsoft.com/en-us/data/jj574253









Wednesday, March 6, 2013

AJAX Caching issue in Internet Explorer (IE) 9 (way back upto IE 6)

I had been pulling my hair apart for resolving the browser compatibility issue. My MVC App has been working well in other browsers, but while doing testing, I found a notorious issue in IE. I had been hung on this issue for several hours. Tried clearing history/cache.. No luck. Tried using the cache trough developer tools (F12)... No luck.. Tried resetting the Browser to its default installation, thinking I might have accidently clicked on a setting for the browser to malfunction... No luck! restarted the machine a couple of times.... But I guess I was looking at the wrong place. Doing a google search for the correct keywords might have helped in the first place! Further research led me to find that IE caches the AJAX requests while others don't. Thats actually BAD news for me, because that gives me inconsistency in data.


Fellow internet geeks had posted a few solutions to overcome this issue:

http://dougwilsonsa.wordpress.com/2011/04/29/disabling-ie9-ajax-response-caching-asp-net-mvc-3-jquery/

http://www.dashbay.com/2011/05/internet-explorer-caches-ajax/

http://ivida.co.uk/2011/09/29/ie-9-ajax-request-caching-mvc/




This worked for me! Yay!

$(document).ready(function() {
$.ajaxSetup({ cache: false });
});

Friday, March 1, 2013

Access the Log for the scheduled processes

The log for the scheduled processes (to trace the failures) is available at:

\\WINDIR\Tasks\SchedLgU.txt

Other resources that I found on the web regarding this can be looked here:

 http://blogs.technet.com/b/rspitz/archive/2010/11/07/scheduled-tasks-appear-hung-in-the-running-state-on-windows-server-2003-based-systems.aspx

Check the following link to increase the size of the file:
http://support.microsoft.com/kb/169443

Thursday, January 17, 2013

Using Heidi as MySql Client to connect to remote server

I had to make some db modifications for one of my clients to the mysql database on the remote server. I hardly have any experience working on the php/mysql arena. Call it my lack of knowledge or understanding, but I had a hard time connecting to the remote server. I tried mysql workbench, but that would crash right when I went ahead to access the database. I was frustrated since I had to make one small change and it was sucking up my time. Then someone over the internet suggested HeidiSql.

Apart from being able to "connect successfully", HeidiSql is really fast and provides and great clean UI to manage your data. Point to be noted for future refs!!