Excluding vwd.webinfo from adding to VSS from VS 2005

When I have a ASP.NET WebSite (NOT WebApplication), I notice the presense of vwd.webinfo in my VS 2005 solution. The problem is the annoyance when it shows as a new source control item. (with a plus sign next to the filename). So, when ever I do a "Pending Checkins"/"Checkin", it is included as part of the pending items.

At the moment I am taking care to uncheck this file and then do the checkin.

But, it would be nice to have tell VSS to exclude this file (or set of files) from trying to add to VSS.

I've also thought about "exclude from this project" option in Solution Explorer within VS 2005, but then it adds a file called vwd.webinfo.exclude and then this shows up in pending checkins once again.

Using the VSS client, there is a facility to include FileTypes. To my surprise, the *.webinfo was not included but still the VS 2005's VSS plug-in tries to add it.

I've never managed to get an solution to this problem yet. Hopefully something might turn out at a later time.

Windows Explorer view in Visual Studio.NET

It has so happened that after working with VS.NET for the past 3 years and having done only .NET Web Site development, now I have to program for the classic ASP pages. I have become very comfortable with VS.NET and would now like to use it for editing even the classic ASP pages.

The problem though is the unavailability (or unawareness) of a windows explorer view in VS.NET. Some other tools used by my colleagues here at Webnetism, have the windows explorer view. That makes it easier to just double click on the file in explorer and start editing it.

I am in lookout for a similar view in VS.NET! Hope to find some plug-in.

From VSS to CVS; From CVS to SVN

Hmm.....After VSS came CVS and now after CVS it's time to try out SVN!

Yesterday, I was finally determined to make my machine a build system(with WinXP SP2 Pro) for which I had to install and configure CruiseControl.NET. For which I had to install VSS. Then I thought of CVS (because, I was comfortable with CVS way of doing things for the past 1 year). Oh...then I thought of SVN (because, SVN is to be a compelling replacement for CVS).

The best part of SVN is the availability of the free e-book which is quite exhaustive. I was indeed more happy to read the TortoiseSVN e-book because it gave detailed steps to install the SVN Server and not just the TortoiseSVN Client.

Since I did not have Apache Web Server in my system, I prefered the SVNServe type of SVN Server which listens on port 3690. With that I had my svn server setup but before running the server, I read a piece of information in the book which said that the svnserve.exe can be run as a windows service using a wrapper called SVNService. Without much thought, I tried running the svnserve as windows service.

But, to my despair when I tried to view the repository which I had just created using TortoiseSVN, I could not find the repository using the repo-browser of TortoiseSVN. Something has gone wrong somewhere....After 30 minutes, I started to suspect the SVNService wrapper. So, instead of going to that level of abstraction, I decided to run the svnserve manually using command prompt. And lo there was Windows XP SP2 in action asking my permission to unblock the port 3690. Phew! that was a relief. After unblocking it, I reverted back to SVNService.

There ended my initial adventure with SVN which was quite less exciting than my earlier ones with CVS and TortoiseCVS. I am expecting the real thrill when I start using ASP.NET application with SVN.

A Virtual Day with Virtual PC 2004

Today was a day dedicated to Virtual PC 2004.

My colleague Ankur was the first one to have installed Virtual PC 2004 and have it up and running. His setup was quite surprising. He was able to install Virtual PC 2004 on a Windows XP Home edition. His GUEST machine was Windows Server 2003. Infact, Virtual PC 2004 does not officially support this setup. Ankur's need was quite different than mine. Since he had a laptop and a desktop computer he could afford for that kind of setup wherein he would be using the Windows Server 2003 for SQL Server 2000 and Source Control.

Since I don't have the comfort of having a separate physical server, I wanted to install Windows Server 2003 as my GUEST machine with the HOST being a Windows XP Professional. The idea was to create a Virtual Network with the HOST and GUEST being the only nodes in the network. The excellent help provided by Virtual PC 2004 came to use very much.

I had to first install the new network adapter(Microsoft Loopback Adapter) using Add Hardware Wizard on my HOST machine and provide the HOST with a static IP address (192.168.1.1) for the connection associated with LoopBack Adapter. The similar proceedure was followed in my GUEST machine with the IP address being 192.168.1.2. I also changed the number of network adapters for the GUEST machine in the Virtual PC Console to include the Microsoft Loopback Adapter.

I restarted my GUEST machine and expected my HOST to detect the GUEST. :-( That looked like a distant future for me. Basically I could not get it to work.

On googling, I found a link to a Virtual PC guy's blog which explains a subtle problem. A chicken and egg kind of problem is what he says. Oh...and here is the actual Virtual PC guy's blog. Now then, I had to realize it will take quite more strain to make this thing work or conclude that it will NOT work. At this point I give up for the day and go to reality by taking a nap and iterating on this stuff tomorrow........

-----------------------------------------------------

LINKS:

  1. A-Z on Virtual PC
  2. Virtual Server
  3. TechNet Virtual Server Technical Briefing in Edinburgh

My first experiments with NUnit and NAnt!

Finally I got a chance to use these tools (NAnt and NUnit)

The first to be used was NUnit 2.2 and had problems using it because I don't have permissions to install any assemblies into the .NET 1.1 Global Assembly Cache. So, I had to obtain the source and did the manual installation of copying all the required assemblies into a single folder. Then I set up the Path Environment variable to include path where these assemblies were put.

After doing this I went cruising my way creating cool unit tests for my own library under construction. It all worked fine and I used the NUnit-GUI  to test my applications.

Then came the second half of the fun! I had to now use the NAnt build tool. So, went ahead and downloaded the binaries for NAnt. As done earlier, set up the environment variable path. I was lazy and tried to use the build of my VS.NET projects using the <solution> task. Boom! A enormous list of errors and exception finally thrown at me by the NAnt utility. Now, I did not want to use the <solution> task and went ahead to create my own directory structure (deciding where each output should go into and also keeping in mind the NUnit tests to be run automatically by NAnt) and corresponding <target> task in my build.xml file.

The most frustrating or shameful mistake I did was to forget the fact that xml tagging is case sensitive. So, all I was getting was errors reporting FileNotFound. Spent nearly 2 hours in wain untill I was forced to get reminded of this fact that xml tagging is case sensitive!

And that is not the end of it! When tried to use the <nunit2> task got the exception that NAnt could not find the nunit.framework.dll assembly (as expected, because i have not installed the NUnit assemblies into the GAC and that is because I DON'T HAVE PERMISSIONS). Then I went on with the <exec> task to execute the “nunit-console.exe”. Now the whole fun started :) Again the problem of nunit.core and nunit.framework assemblies not found problem.

The problem was that I did not bother about nunit.core and nunit.framework assemblies when using the nunit-gui because they were in the same folder as that of nunit-gui.exe. But, now when I run nunit-console, the present working directory will be the location where the build file is present and thus nunit-console cannot find the nunit.core and nunit.framework assemblies. So, the only solution left for me was to copy the nunit.core and nunit.framework assemblies from the installed folder (the path is hard coded in the build file; I do not like to do that) to the present working directory. That solved the main problem. But I really failed in transforming the TestResult.xml produced automatically by NUnit-console to a proper html output using the “Summary.xslt”. Too much to handle for a single day may be..  So I am giving up on that and am contended with the error output files.

The immediate task facing me now is to use the al.exe for linking the modules just compiled using NAnt's build process into a single assembly and placing in the GAC. But hold on, I do not have permissions to install an assembly into the GAC! Instead, I have the SSCLI's GAC. hmmm, that would take more time I guess.

I just wish some kind of USER Specific GAC is provided in .NET! (or may be permissions can be granted to install the assemblies generated and strongly named by the CURRENT USER into the GAC). Got to look into .NET Operation documentation for all these stuff!

Ok. Now time to shift to Rotor and leave .NET for a while! Phew!

The Independence Day outing on Bikes

This month quota for travel came along on the Indian Independence Day (August 15th, 2004). Along with my friends namely Gautham, Jimson, Viju, Madhavi and Bharath, we decided to go to Siddarabetta and nearby hills of the Eastern Ghats near Tumkur (95 Km from Bangalore). We wanted to do some bouldering, cave exploration and bike riding. It was a Bajaj Team (2 Pulsars and a Caliber 115). I got to test the limit of my bike, the Caliber 115 to reach just about 85 KMPH speed. Very good National Highway just facilitated our ride. On the way, just stopped over to climb a good looking rock face and also did very minimal bouldering on top of that hill.

The cave exploration at Siddarabetta was in itself very exciting along with good lunch within one of the caves.

Not much time was left and we decided against visiting other nearby hills (Madhugiri, etc...).

The highlight was riding the last 50 KM stretch on the National Highway cruising at an average of 75 KMPH. Jimson's pulsar was also tested to the limits of 120 KMPH (with the hefty Bharath as the pillion)

One of the group snap can be found in my galleries.

got to program now.....

Why not read a book for your collegues!

I have now originally copied an idea from Rick. The idea is on how to make myself read a book. Rick started by writing out snippets (in his own words) from a book he was reading. Not just writing it for himself, he was sending them as mails to the collegues.

It so happened that for sometime such mails stopped which prompted me to mail him to ask about the proceedings. He said he shall continue doing it. Which makes him read the book.

I have also started to do something like that now. I am reading the “Essential .NET - The CLR” by Don Box. And not just that. In our internal forum, a new forum has been dedicated to this purpose. (email becomes cumbersome due to maintainance problems).

Advantages:

  1. I get to read the book as collegues expect something every day.
  2. I also get to summarize what I have read (best method to retain knowledge is to share it).
  3. Collegues also get to read the book at a glance.

got to code now.....

A different advantage of multi-language support in .NET

Today, I had to create the skeleton VS.NET solution along with the different .NET projects that would go into the solution for a new project at my workplace.

The reason I chose today as the day for this is that I could see someone starting to go ahead with the project development like some student hacking his way around. I have lost the patience to even look at such kind of coding. Worst is the case when there are files named “WebForm1.aspx” and “WebApplication1.sln”. If not today then never it will be. If substantial amount of coding goes into the project then the natural tendency to resist change occurs and the result is spaghetti code. ( ”Denial is the most predictable of all human responses” - from Matrix - http://www.neoandtrinity.net/)

In my previous ASP.NET web application project, majority of the time was spent on setting up the environment and learning new stuff.( VSS to CVS transition, 3-Tier Architecture, User Interface Process, Authoring Web Pages, Web Menu, User Controls, Authentication & Authorization, Coding Guidelines, Javascript and Asp.Net co-existence, DataGrids, Session Expiration, Understanding Struts to understand MVC, Deployment etc...). In fact, every damn thing was new. Not much time was devoted on implementing most of the suggestions in “Real-world tips for Real-world web applicationweb-cast by Paul D. Sheriff, President, PDSA Inc. Almost all the tips are right on target and gives the viewer enormous confidence and courage to immediatly try including them in their current project. And quite a few of the tips were incorporated. I was scared to experiment more due to the UIP application block being used (which in itself is mind-bogling stuff).

This project will not use the UIPAB and hence the decision to start with business logic coding only when all the real-world tips are included. At this precise moment, I've included 6 of 10 tips in this project (The coding for which started about 9 hours back). A more elaborate webcast on N-Tier programming (”Designing LOB applications using Asp.NET”) was refered and hence a different project folder structure has been adopted.

  1. N-Tier programming (done)
  2. Application Settings (done)
  3. User Interface
  4. Base Page Class (done)
  5. Track Users (next in the task queue)
  6. Exception Management (done)
  7. Session Variable Usage (done)
  8. Manage Unhandled Exceptions (done)
  9. Security (doing...)
  10. Performance

Now, let me come to the relation of this post with that of its subject. The code sample provided and refered by Paul D. Sheriff was written using VB.NET and the project I am developing is using C#. So, most of the time I had to replicate the code in C# for which I had to understand VB.NET code also. This process of looking at a code written in another .NET language and writting the same functionality in another .NET language is very fascinating. Some of the syntax I used to take for granted were made to understand.

Now, one might argue that this can be done with other languages also. Advantage in this case is that both VB.NET and C# uses the underlying FCL and thus makes it very easy to do the conversion and hence the learning. Imaging doing the same from Java to C# (I guess this might also be easy owing to the fact that many OSS existing in Java are now being written in C#).

I've now decided that to understand any code, best method is to re-write the code using some other language. I think VB.NET developers will get a better grip on Object-Oriented languages by using this technique.

Also, for the first time I have thought about the number of lines of coding that has gone in today. Stumbled upon the “devMetrics tool for C# code analysis and reporting. Unfortunately, It is not enabling the Analyze... option from the VS.NET 2003 IDE. But, I could generate the report using the Command Line facility and found that the amout of code written today by me is approx. 250 lines.

Ok... Time to take a nap and go home in the morning....

Training the non-techies on .NET!

“How to train the non-techies on .NET?“

“What should you start with and where to stop?”

These were just a couple of challenges I had to face this week at the training program organized at my workplace for the freshmen who joined our team a couple of weeks back.

The challenge becomes more interesting when the group consists of few computer science graduates and few non-computer science graduates.

There needs to be a balance in the amount of information departed. More technical terms, and the ideas will bounce off the non-techie group. Using more general terms to explain any stuff becomes more trivial for techies.

We'll the agenda was to instill the basics of .NET and a proper foundation so that the later sessions (C#, ASP.NET, ADO.NET) have no difficulty.

Keeping that in mind, I decided to use the same presentation I had used at the CorporateConnexion @ Christ College. On review, found that it was loaded with technical stuff and may bounce off even the techie freshmen.

So, that presentation now had to be trimmed.

First, I decided to instill the idea that:

  • .NET was not any single software
  • .NET has been mainly been developed to create Enterprise Applications

To get this idea instilled, used an anology of a House Construction and Enterprise Application Construction.

This made it possible to understand “Where exactly .NET fits into the Software Industry?”

The second half was to just clear the jargons surrounding .NET

Just displayed the various components of .NET that will be used to create an enterprise application.

  • The various types of applications that can be created (Web Application, Desktop Application)
  • The various role played by Asp.NET, Ado.NET, Web Forms, WinForms

The presentation can be found here

 

My First Ever Talk for the Academia

On 19th June 2004, gave a talk at the Christ College, Bangalore on the occasion of Corporate Connexion. The topic I chose to talk was “.NET-An Overview”.

I had never expected such an event to happen at Christ College. Always wanted to be part of this beautiful campus as a student. Great college with great people around.

Initially, did not know what to talk on. Had no idea about how much the academia is updated with .NET. So, decided to present a very basic talk. The intension was to instill the basics. Clarify all the jargons surrounding .NET technology. Also to give a clear picture on how the various components of .NET fit into the development infrastructure.

Found a paper in ASP.NET starter kit precisely doing that stuff. So, prepared a ppt on the basis of that paper.

I knew that there is no point just going on telling about .NET without involving J2EE. So, wherever possible, gave the parallel. Later found that the audience were comfortable with J2EE because they have it as part of their curriculum. This method indeed work out very well with most of the questions revolved around comparing J2EE and .NET

Some of the questions asked were:

  • What are the job prospects for .NET over J2EE
  • What is UIPAB
  • What is a Web Service
  • What is the compilation and execution procedure of a CSharp program
  • Since, Fortran and other 3rd party languages are essentially non-object oriented, are their .NET counter parts object oriented
  • What is IL
  • What is JIT compilation
  • What is MVC
  • What is Struts Framework
  • What is DataSet and how is it used

Some of the information I wanted to share and did not (due to various reasons):

  • CLI
  • Managed Code vs UnManaged Code
  • PInvoke
  • Open Source Tools for .NET development (SharpDevelop, Web Matrix, Mono, NUnit, Maverick.NET, CruiseControl.NET, NAnt etc...)
  • CTS

In general, the talk was good and was good feeling to talk to students. I've infact learnt most of .NET by virtue of teaching others about it.

The funniest part was the students addressing me as "Sir". Not that I do not know the intentions. So, did not hesistate to accept the addressing. I think they were more comfortable with that way of addressing rather than using my name.

The presentation is available for download here

 

Realization of the importance of regular failures! (off-topic)

Once upon a time, failures was a way of my life. Most of the small experiments done by me during primary school went for a toss. Such experiments were a result of not proper planning and being very serious about the whole stuff. Then, such small failures became so common that, I never even was afraid of a failure.

But, for some time now (after getting into the software industry), not many opportunities arose for me to be a failure except for the first project which I had worked upon which was a near failure (thanks to inexperience, it was not a complete failure).

I am famous for not completing what has been started. Nowadays, I am not even consious of this fact (which is even more bad). This resulted in averting most of the challenges. This has been so deep rooted now that I don't take up topics which are challenging to me for presentations and talks.

I was recently invited to be part of a discussion in an academic institution and immediately chose to present a topic on “Basics of .NET” rather than the more challenging topic like “How .NET and J2EE stack up?”

Being a .NET developer and not having much exposure to J2EE, presenting the second topic is more challenging to me than the former one.

More over, just lost a bet with my collegeues. That has made me broken. Just realized that, if failure is not tasted for a long period of time, small failures like these can cause a lot of pain. As a matter of fact, I've not even failed in any of my interviews yet. I guess, it is time to get more challenging than to be comfortable doing the stuff that i've mastered over time.

Currently, thinking of some intermediate topic for the discussion, that can deliver the basics of .NET.....

Height of .NETing! (1892 meters Above Mean Sea Level)

It's been week and the memories of trekking to a height of 1892m AMSL are still hovering in my mind.

It was just 3 months since the escape to the jungles, the nature invited another visit to the peaks, valleys, jungles, water falls, wild. The timing was not very perfect as my presence would have really helped the team to go ahead with the product release smoothly. Despite the tight schedule, made myself way out of this noisy Bangalore to the bliss of the Western Ghats.

This trek was to the KudreMukh (The peak that looks like the Face of a Horse) in the Western Ghats of Karnataka.

The Western Ghats greeted us with leech bites and steep climbing. All of a sudden, we had the perfect location for lunch and found ourselves surrounded by cloud hidden peaks.

The habbit of not looking up into the skies had not left me. I was just looking at the forest down and when suddenly looked up by chance, could not resist the view of a huge peak slowly being uncovered by the clouds. Felt how small humans are amidst the nature.

Upon reaching the peak (The KudreMukh) thought of .NET was still lurking behind me. In the silence of 3 minutes at the peak, felt the need for a laptop and wondered how good a program can be written at that silence and height. Just missed a laptop.

So, thats the highest point I've ever been as a .NETian. (1892 meters above mean sea level)

Would be interested in knowing if any .NETian has trekked above this.

 

The arrival of Microsoft VS Team System

It makes me awe at the pace with which Microsoft is introducing new products. Added to that list is Microsoft VS Team System. Just the kind of product we wanted.

Got to appreciate the way this product was released. No clue about it till the last minute of announcement. Being a avid reader of the blogs, not many gave any clue about such a product. (or, have there been news about it? Not to my knowledge!)

While the attention was diverted in the blogs about new features in existing products (Office and Whidbey) or about features in some distant product (Longhorn), a silent product was under development with tight lips.

Now, is Microsoft creating a pattern for the usage of blogs. “Use blogs mostly for gaining/providing insights into distant/existing products”

This becomes evident as a blog being created immediately for VS Team System!

Any case, good going!

Lots of stuff ahead in 2005.

Boss goes blogging!

Yes! Thats right! My boss goes blogging. He seems to be interested in “Manage-ment”. Currently hooked on to the mBlog. (http://mblog.com/management_musings) Soon may find a perfect “management blog engine” like how “DotNetJunkies” is for .NETians.

 

The Daily Pattern - General work culture related blog entry

This week began very boring, without any focus and always busy thinking of doing new things rather than solving the problems at hand.

This has happened quite some times for me and has put me into a very bad shape.

This time though, I thought about a mechanism to satisfy myself and others.

I normally keep some work for the next day morning. I found out that this was the culprit. So, decided not to plan for tomorrow. Everyday morning I shall get up without any pressure to reach office in time and start as planned yesterday. Instead, reach office and then spend a cool 30 minutes looking into the “This Week” notes and preparing “This Day” notes.

Now comes the interesting part. Do not start off with the first task at hand. Instead, read a technical book (thats what interests me in morning. Novel's are for evening) for 30 minutes - 45 minutes.

Check official mails and get on to the first task at hand. Normally, I keep one task for rest of the time till lunch hour.

After lunch, play a game of carrom till end of lunch break and get on to read blogs. Start the next task or continue the pending task from then on.

This pattern has really worked out very well for me and my company supports such a people-driven environment.

Things are getting to feel great and the problems also get solved in much more efficient way.

Currently reading “applying UML and Patterns”,Craig larman.

Although, have read the beginning chapters earlier, upon reading the chapter 2 (UP) I am feeling as though our team has naturally fallen into such a precise process.  The description of the process correctly fits into the daily work what happens in our team. Some of the +'s being, “ye-but”, weekly iteration, iterations not producing prototypes instead working system, rapid feedback from client, constant refactoring etc...

Feels great that any process that keeps people in front does survive without regard to what that process is called. Good that our team has not fallen pray to the “people for process” scenario.

  • Book reading
  • Blogging
  • Brooding over .NET

That the 3 B's for me right now.

 

Finally, A Good Bye to Visual SourceSafe!

In my previous post on “Using CVS with VS.NET”, I've discussed the need to switch to CVS and also the problems faced in doing so.

After long time (nearly 2 months) my team has finally become very comfortable with using CVS and VS.NET. Looking back 2 months from today, I get reminded of those days when a whole day would be spent by me wondering who did what and what went wrong. With good push from my team-mate, Jimson, CVS was finally chosen as our Source Control. We did find a good plug-in called “Push-Ok” for VS.NET 2003. An excellent plug-in I should say. But, it came for a price.

We chose to stick on to Tortoise CVS and take the hard way around. We found that apart from files being edited by us, the VS.NET IDE also changed some files (like .csproj). Then with the help of Jimson, found out the right files to got into the CVS repository. Thus, after a half day session for the team on how to use “CVS with VS.NET” things got settled and now everyone seems to be comfortable with the “Copy-Modify-Merge” way of doing things.

A great feeling and a great relief....

Good going team.....

Wanted one and Purchased one! A DigiCam (DG Cam as Rick likes it!)

Year 2004 has started in a perfect manner as I wanted. I've been doing regular visits outside Bangalore since January with a frequency of One Trip every 30 Days.

January - Trek to Bisle,Karnataka (5 Days in forest)

February - Trip to Srirangam, Tamil Nadu (2 Days)

March - Trip to Coorg, Karnataka (2 Days)

The trend doesn't seem to stop. I've already got plans to visit Kanchipuram, Tamil Nadu for 3 Days in first week of April.

Also, expecting to visit Horanadu (Western Ghats), Karnataka in May.

Mostly another trek in June.

What's a bit disappointing for me is that I've been going around such amazing places without owning a still camera. Though the void was filled by other's cameras, It is nothing like owning a camera and taking lots of pictures of my choice.

Now that I've expected nearly 3 trips in next 3 months, I thought of purchasing a camera. First choice was to own a Digital Camera (In fact, I've been postponing the purchase just to buy a DigiCam). Purchasing a normal camera was not even in my thoughts. I just want to keep taking photographs with much concentration rather than worrying about the later expense part of it.

The first thing I wanted to do after my coorg trip was to own a DigiCam. After lots of thought, decided to take advise from my friend Rick. In fact, the DigiCam was almost bought by him. He did all the research on my behalf. More over he has got a DigiCam and knows the basics of a DigiCam.

At some point of time, there was a thinking to go ahead and buy a Sony Handicam. Later dropped the plan. Also, an option to buy a normal camera with some exclusive features was there.

Finally landed upon buying a Kodak DigiCam (cx6200) which I think is the least priced digital camera model in India.

It is a 2.0 MPixel, 3X Digital Zoom with 8 MB internal memory. Has a slot for MMC. See http://www.kodak.com/eknec/PageQuerier.jhtml?pq-path=9/19/32/1055&pq-locale=en_US

It took me just 24 hours to decide upon the model but took 4 days to show it to my parents. Was a bit held back by the timing of the purchase. But, then everything went ok. It was recieved very well.

The most funniest part is that I have a pretty old PC which currently has no USB port. So have to spend about Rs 200 for either a USB-Serial connecter or a USB PCI card.

Also pending is the purchase of 64MB MMC costing nearly Rs.2100. Got to buy one before my Kanchipuram trip.

Bangalore has finally got rain. There we loud thunders and some lightning Unfortunately It did not rain that much. But, anything is a bliss to beat the summer heat. Time to leave and aim to reach home before another pour.

Hoooodi Babaaaa.......

posted