Blog comments edit

I didn’t know about this sophisticated application so called “Windows Live Writer”. Actually quiet frequently I was looking for an HTML editor to write my blog post and then update my blog. Because HTML edit which comes with BlogEngine.Net is not easy to use – and its the same problem with all web based HTML editor-. To be honest windows live writer is something more than what I expected.

I was reading an article about AtomPub Using WCF Data, I came across Windows Live Writer which surprisingly supports BlogEngine.Net (Its better to say that BlogEnine.Net supports AtomPub which is protocol for publishing content).

Windows Live Writer easily installed on my machine. After installation completed you will be asked about your blog information and if your blog supports AtomPub then you can continue to enter login information of your blog. With a quick search I found in WiKithat Windows Live Writer supports BlogEngine.Net so I selected “other blog service” option in this form. What blog service do you use

In next step you’ll be asked about your blog address and username and password.

Add a blog account

For me as a developer it was surprising that Windows Live Writer supports plug-ins. first thing I looked for was SyntaxHighlighter. Yes! . I’s already been developed. there is a project in CodePlex named “SyntaxHighlighter for Windows Live Writer” you can easily download and set it up.

Blog comments edit

Couple of days ago I came across a fantastic challenging application in Facebook which is called “click test”. This application measures your click per second and you have to click as much as you can in 10 seconds. For sure in my 130 friend there are many who can click more than me, but I had to do my bests especially a friend of mine (Kambiz) who is not only good at typing and clicking but also good programming. What should I do! should I left the battle or keep challenging? Of course I have to stay in this battle. I tried to score a good click per second but honestly the best I did was about 90 clicks per second which is lower than lots of my friends.

What is “click test” application? This is a simple but

ton that you have to click on with a countdown timer which runs inside browser. Ok, the first thing pops in mind is writing a simple application to simulate clicking on this button. Ohhh, you have to find browser windows handle then use SendMessage with appropriate (wParam, lParam) parameters to simulate clicking on specific area of window. That sounds great. But the fact is I’m more JavaScript and HTML guy than API guy. So let Keep It Simple Stupid (KISS).

If you view source of “test” application page you’ll face huge amount of complex source code which is really complicated. At the beginning I wanted to find the function which is responsible for counting down t from 10 to zero and then increase it but the code is really messy and it takes time to find the function you want. Should I inspect all HTML and Jscript source code? The answer is No

Recently browsers are delivered with quite sophisticated feature for developers. For example Internet Explorer 8 has got famous feature which is called “Developer Tools” and you can activate it by pressing F12. Having pressed F12, nice window will be displayed to help you debug your HTML and JavaScript.

Ok to find start button you can press Ctrl+B or select Find -> Select element by click.

Then move your mouse to element that you want inside browse.

As soon as you move your mouse inside browse you’ll notice that browser mark current element by bordering it. So find start button and then click on it. Gotcha! Developer tools automatically scrolls to input tag related to selected element. You can also scroll horizontally to find “onmouseup” which is actually responsible for counting your clicks. Ok, double click inside onmouseup and then press Ctrl+A to select all body of onmouseup.

So I can copy this element into clipboard and then paste in notepad. You may also have somthing similar to following:

[sourcecode language="javascript"] fbjs_sandbox.instances.a130168443678744.bootstrap(); return fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,130168443678744),function(a130168443678744_event) {a130168443678744_game.update($FBJS.ref(this).getForm())},130168443678744],new fbjs_event(event)); [/sourcecode]

Actually this is an event handler and this code runs every time you click on your mouse button. But it’s rather complicated. It calls a function at first and then calls another function. So If I want to change this code I have to find these functions and then change body of them.

But what if I don’t change any code and just make this event handler to run multiple times per click. That is sound good idea. So let copy and paste event handler for couple of times. But I should notice that second function call has “return” and I have to remove it for my new copies, and just leave it for last one.

[sourcecode language="csharp"] fbjs_sandbox.instances.a130168443678744.bootstrap(); fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,130168443678744),function(a130168443678744_event) {a130168443678744_game.update($FBJS.ref(this).getForm())},130168443678744],new fbjs_event(event)); fbjs_sandbox.instances.a130168443678744.bootstrap(); fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,130168443678744),function(a130168443678744_event) {a130168443678744_game.update($FBJS.ref(this).getForm())},130168443678744],new fbjs_event(event)); fbjs_sandbox.instances.a130168443678744.bootstrap(); return fbjs_dom.eventHandler.call([fbjs_dom.get_instance(this,130168443678744), function(a130168443678744_event) {a130168443678744_game.update($FBJS.ref(this).getForm())},130168443678744],new fbjs_event(event)); [/sourcecode]

As you see I copied all code for three times and left return just for last call. It means my clicks will be tripled and I can register 150 clicks just for 50. It’s good. So let’s copy this code back to onmouseup element it is ready for testing.

Enjoy it!

Blog comments edit

As first day continued Scott and James tried to demonstrate Microsoft ASP.net 4.0 and MVC 2. Same question about ASP.Net was asked and was answered. Fellows was worried about replacement of ASP.Net with MVC 2 and as it was answered and like before Scott and James defined that ASP.Net is not going to be replaced by MVC. It is just a new approach of implementing web applications and depending on website structure and content websites could either be implemented by ASP.Net 4.0 or MVC 2.

Couple of new project templates has been added to Visual Studio 2010 and in web. One of them is “ASP.NET Web Application”. When a new ASP.NET Web Application is created visual studio automatically creates folder and files which are needed for a simple application. This type of project unlike previous web application is not an empty project and contains necessary files and folders to create a simpl e application.

![](http://gkasoq.bay.livefilestore.com/y1pLnVOG0XwybOiItGKO0xDFYXBdbJJMW4wIfltcM7jkOkr7r-lTYbSi0JH2xkh_xNTUat4zWPIg487cLqJTGVhZ3uwXaMObIgx/image1.jpg?psid=1)

This template includes Microsoft ASP.NET Membership Provider and if SQL Server Express is installed on developer machine this type of project is automatically configured for ASP.NET Membership provider which connects to SQL Express. This type of Web application is similar to ASP.Net application because the theme and style looks like default theme of ASP.Net MVC Application. Good news is Micros oft has added jQuery to ASP.Net web application and ASP.Net MVC 2 Web application templates.

![](http://public.bay.livefilestore.com/y1p0CyxJbDlGQX1TGsh9xYGAX5LM2BabKVTdC05NH5Xp8NvE50SN9b1BlluEvfUTBRPVzfNTVlwh9B9jC9kmR83oA/image2.jpg?psid=1)

I think one of best features of MVC is its testability and on top of that you can change test framework of testing if you want. I’ve find some good articles and posts about adding customized test framework for testing MVC 2 projects. [How to: Add a Custom MVC Test Framework in Visual Studio](http://msdn.microsoft.com/en-us/library/dd381614.aspx) and a post about [NUnit Template for ASP.NET MVC 2](http://www.dalsoft.co.uk/blog/index.php/2009/11/17/nunit-templates-for-asp-net-mvc-2-0-preview-2/) .

![](http://public.bay.livefilestore.com/y1p0CyxJbDlGQXtnu2vYWW5fll5DdKfq78g262MRz5l3vWRhKV4dJ0xXMvi1-S5gzEDBpwwgMbacdMtab3GYGn8SQ/image3.png?psid=1)

Presenters created a new MVC2 Web application and for beginning they created a project without database just to keep it simple. View, Mode was discussed in this session and they talked about partial views and templates. I wanted to describe creating templates in MVC 2 but I found a good sample in Microsoft that helps to understand how to create templates in MVC. Following is link to [EditorFor](http://msdn.microsoft.com/en-us/library/ee407414.aspx?appId=Dev10IDEF1&l=EN-US&k=k(%22SYSTEM.WEB.MVC.HTML.EDITOREXTENSIONS.EDITORFOR%60%602%22)&rd=true) extension method. On the bottom of page you can find a link to Template Helper Sample.

For describing model part of MVC a virtual project was defined named **Plan My Night**. It was a simple application to plan night. They described model and controller by creating a simple database and entity model to implement **Plan My Night**. During implementation o f **Plan My Night** they described partial views editor templates. For editor templates there is a good sample to create an editor template for datetime inputs called [MVC2 Editor Template with date and time](http://geekswithblogs.net/michelotti/archive/2010/02/05/mvc-2-editor-template-with-datetime.aspx).

They combined sample with newly introduced feature called jQuery Templates Data Linking. You can find a complete sample in [ScottGu’s Blog](http://weblogs.asp.net/scottgu/archive/2010/05/07/jquery-templates-and-data-linking-and-microsoft-contributing-to-jquery.aspx). Another cool feature of visual studio which is really useful is Dynamic JavaScript Intellisense in VS 2010. Not only client items in win form can be identified by intellisense of VS 2010 but also items which are being created by developer during development can be identified in VS 2010 like following picture. 1000 items with TestDev prefix is added to window object. Exactly after while command you all TestDiv0 to TestDiv1000 is added to suggestion list.

![](http://public.bay.livefilestore.com/y1ptBeALZuZu6CwPxpnLlyhupBowCMtPGt0zbF-B1dV_0y7H0g4YeYlZClbjDim0T5IVJjUBwLI3rBd7QwJr3yRLQ/image4.jpg?psid=1)

During the presentation Scott wanted to use a trick to cause a crash for visual studio 2010 (It was on purpose). He changed “while” condition to an infinite while condition and he expected VS to crash when suggestion list was being opened, but visual studio is clever enough and calculates list until certain amount of millisecond and if it’s going to be time consuming visual studio just ignores rest of computing and jump over next statement. There is a good post in [ScottGu’s Blog](http://weblogs.asp.net/scottgu/archive/2009/10/22/vs-2010-code-intellisense-improvements-vs-2010-and-net-4-0-series.aspx) about JS Intellisense and its improvements.

Other feature which was discussed in webcamps was about Web.config transformation and packaging and deployment of web application SQL server. There is a good clip about Web.Config transformation in [channel9](http://channel9.msdn.com/shows/10-4/10-4-Episode-10-Making-Web-Deployment-Easier/) about Web Deployment and Web.Config.

 Rest of presentation was about IIS extensions which are available on [http://www.iis.net/download](http://www.iis.net/download) and can be downloaded and installed by Web Platform Installer. Among those extensions [SEO Toolkit](http://www.iis.net/download/SEOToolkit) was fantastic which was shown by Scott.

At the end of presentation fellows were asked to pitch their ideas for next day. Following are some of projects and people voted for them .

My Noisy Neighbour (I voted this project)

RaceDay Commander

MongoDB Management Studio

Due Date – lightweight task-tracking for uni students

Address Book Lookup

I voted for first project “My Noisy Neighbour” and in second day I had to join to a group of people to develop this web application based on what we’d learned in first day. In the next post I’m going to describe what was our project was and what had happened.

Blog comments edit

WEBCAMP was a 2 days event that provides a chance to learn and build projects based on Microsoft Web Platform. WEBCAMPS is held in different cities around the word and I had chance to participate in Sydney WEBCAMP event in 28 and 29 of May 2010. Interesting point is performers of this event in Sydney were Scott Hanselman and James Senior who I really wanted

to be in one of their presentations specially Scott that you’ll never be tired in a conference in case Scott is one of presenters. http://www.asp.net/dynamicdata

These project types are useful for creating administration pages from scratch. All you need to do is create your database and relations. Create a project type either Entity of Linq to SQL and select entities you want. Suddenly you find that All CRUD (Create/Remove/Update/Delete) of your entities is created in user friendly URL by using “DynamicDataRoute” class.

Following is steps to create an administration web site for Northwind in less than 2 minutes:

  1. Create a new web project type Asp.net Dynamic Data Entities Web application.
  2. Copy Nothwind Database files (MDF and LDF) in APP_DATA folder.
  3. Right click on project and new data item type ADO.Net Entity Data Model.
  4. In wizard form select “Generate from database” item.
  5. And then select NORTWIND as data connection.
  6. Select tables you want to be added to Entity Data Mod and then click finish.
  7. Open Global.asax and then remark line starting with DefaultModel change this line as follow.
DefaultModel.RegisterContext(typeof(NorthwindEntities), new ContextConfiguration() { ScaffoldAllTables = true });

8.Press F5 and run the application.

Simple, Easy and beautiful, It’s a good solution for quick data administration generation. And the good thing is all templates are editable and you can change them.

Blog comments edit

 

 

After 22 months our (me and my wife) Australian permanent visa is granted. These 22 months of my life was so hectic. This is a big break in my life and I'm looking forward for shiny future. My visa was issued on 18 of January and new level of my migration is started.

There are tons of things to do in order to settle in:

 

1.       Sell our stuff including my car

2.       Rent my apartment

3.       Open a bank account in Australia

4.       Transfer money to Australia

5.       Send our stuff to Australia by AIR shipment

6.       Move into temporary accommodation for one or two weeks in Sydney

7.       Receive the AIR shipment.

8.       Move into Mid-level temporary accommodation for couple of mount

9.       Get a mobile phone including device (Hopefully buy an HTC HD2)

 

And last by not least

10.   Finding a new job in Sydney

  I think the last one is the most important thing to focus on. I have to improve my English abilities, Prepare a professional Resume and covering letter for each vacancy, which I apply, improving my technical abilities in various aspects.