Introduction...

The first post into my weblog... with a few words about me and this weblog, what you might expect to see in the future etc.
Finally managed to get around to setting up my own weblog. Let's see how this works out...

Some of you may already know me, but a brief introduction is in order for this initial post. I am a development lead on the ASP.NET team at Microsoft. More specifically, I'm responsible for the Web Forms runtime and designer features (aka server controls, aka page framework) in Visual Studio .NET and the .NET Framework. That should help explain the subtitle for my blog if you're wondering. ;-)

I've been working at Microsoft for about 6 years now... all the while in the Developer Tools Division. Over the course of these years, I've worked as a developer in Visual InterDev (where I got my start), Visual Basic and .NET Framework teams.

It's been a lot of fun working on development tools and class libraries all these years. Undoubtedly, this blog's subject matter will be no different... perhaps mixed in with some random thoughts and opinions, occasional posts on some of my hobbies like photography, or whatever else happens to come along down the road.
Posted on Saturday, 5/10/2003 @ 5:43 PM


Comments

28 comments have been posted.

Datagrid Girl

Posted on 5/10/2003 @ 7:19 PM
I'm thrilled that you're blogging--welcome to the club!

Jeff Julian

Posted on 5/10/2003 @ 7:24 PM
Very good looking site, did you create your own engine or use someone elses?

randy

Posted on 5/10/2003 @ 8:55 PM
Welcome, subscribed.

G. Andrew Duthie

Posted on 5/10/2003 @ 10:51 PM
Welcome to the blogging world, Nikhil! I'm sure your contributions will be closely watched by many...your RSS feed is already plugged into SharpReader, so I'm looking forward to hearing what you have to say. :-)

Lutz Roeder

Posted on 5/11/2003 @ 2:39 AM
Great, one of the most productive MS developers online. Nikhil didn't mention that he also started ASP.net Web Matrix (as a spare time project).

Dilip

Posted on 5/11/2003 @ 8:06 AM
Nikhil
I am not able to subscribe to your RSS feed (thru' Syndirella). Is anybody else having the same problem?
btw, your weblog layout rocks. I love the white on black background when I type comments :-)

--Dilip

Tomas Restrepo

Posted on 5/11/2003 @ 7:52 PM
Hey, Welcome! Rss Subscribed! :)

Steve Celius

Posted on 5/12/2003 @ 11:42 AM
FeedReader 2.5.567 is incapable of reading you rss. I don't want to change my reader, but I do want your blog, so pleeeeeease look at it :-)

Joran

Posted on 5/14/2003 @ 6:58 AM
Give us the ability to use multiple forms on ASP.NET

That is all.

Carry on.

Pooran Prasad

Posted on 5/28/2003 @ 6:54 AM
Hi Nikhil.. I am very much impressed by your efforts on Web Matrix Project and this blog is superb :) Congrats
Have a great day and take care :)
Pooran

Timux

Posted on 8/10/2003 @ 1:44 AM
You done great work!

Faisal Gazi

Posted on 9/14/2003 @ 7:24 AM
Nikhil,
Can you publish an article on how you set up your RSS feed. Excellent site.

Ramesh Sringeri

Posted on 9/30/2003 @ 7:36 AM
Nikhil, First I want to thank you for writing the BEST book on server controls. I have been telling everyone I meet "If U want to learn ASP.NET read this book. Even though its a book abt server controls, U will learn a lot about ASP.net"
Next
I JUST CANT BELIEVE THAT FOR UR WEB LOG U CHOSE a BLACK BACKGROUND AND blue foreground for text. ITS uneadable unless U highlight the text. Please correct this.

Just me

Posted on 12/1/2003 @ 7:28 AM
Where is your contact form or email - I can't see it anywhe

Luis Abreu

Posted on 1/2/2004 @ 5:54 AM
Hello.
maybe this is not the right place to put this, but since I can't find your email or form contact, I though that I should have a go and place it here.

I'm currently reading your book about server controls and components. I'm really enjoying it a lot. However, I think that there's a small problem with the code that is presented on the 16th chapter: the tabledataboundcontrol. the problem occurs on the postback of the page. the code that is presented doesn't seem to do it correctly. in fact, if you add a button to the test page (which is only used to do the postback) you'll see that the table is recreated, but the text that should be inside the cells isn't displayed. the book says that the only thing that is needed on the postback case is to create table cells and that after they should been automatically filled by the view state mechanism. the problem is that this doesn't happen. I've tried looking for some info on the suport site (mspress). however, this issue isn't presented there.

I've taken a look at the documentation and they say the following about the table class: "(...)It is important to remember that any programmatic addition or modification of table rows or cells will not persist across postbacks. This is because table rows and cells are controls of their own, and not properties of the Table control. To persist any changes to the table, rows and cells must be reconstructed after each postback(...)"

this seems to go against what is said on the book.

maybe I'm wrong...I'd really appreciate some input regarding this matter. thanks for your time.

Morten

Posted on 2/13/2004 @ 3:14 AM
Hi,
What kind of blogging engine are you using?

Regards
Morten

Pravin

Posted on 2/13/2004 @ 8:14 PM
Can you please tell more about your educational qualifications and how you got into Microsoft ?
That would be helpful.

Paulin Shah

Posted on 2/25/2004 @ 10:33 PM
Hey nikhil,
Great work!! I can't believe u started web matrix as a spare project!! can't wait to hv asp.net 2.0 out tested out the beta version nd cple of seminars. from wat i saw it rocks...!

Ahmad Acyl

Posted on 3/3/2004 @ 5:10 AM
Hi,
Great Job, very impressive. Keep it up!
From a big fan,
Ahmat Acyl

shanthu

Posted on 5/4/2004 @ 9:02 PM
Nikhil, I am one of many who purchased your server control book. It is worth every penny. I am planning on setting up my own blogger and host on one of my sites. Could you share some of the work ( with source code ;) ).

Thanks in advance.

Jim Wrenholt

Posted on 6/14/2004 @ 9:42 AM
Love your book. I have tried to use your date picker control. Which works good using http, but when the page is accessed via https (ssl) they just get a blank rectangle. Do you have any idea of extra issues or setup in using behaviors (.htc) with https?

Luis Abreu

Posted on 6/19/2004 @ 6:44 AM
Hello again. Remember me? I've tried to contact you regarding an error which occurred on the source code that accompanies your asp.net book controls. I've posted an entry (here) and I've also tried to contact MS Press support. Well, it seems that I haven't got any luck with these tries. while I was wainting to get an answer (from you or MS Press) I've figured the problem related with the source code. Well, the problem is that you can't set the Text property of the TD element before adding it to its parent control Collection. If you do that, you'll loose the text of the cell because it won't be marked as dirty and it will not be persisted on the ViewState phase. So, the workaroud is easy: just add the each element to it's parent Control collection before setting the properties or they won't be persisted.

I must say that I discovered this a few weeks after my initial post. I also must say that I'm a little disapointed by not having been contacted by anyone with respect to this bug (and it is a BUG). After all, I've bought the book (and it wasn't cheap), so I think that I would deserve a little more attention (not saying that this is your fault; after all anyone can make a mistake; however, not hearing a word by one of the authors nor from MS Press is really not a good thing ).

Well, sorry for putting this here, but it seemed the best place (since you don't put your email). regards.

Aaron Boodman

Posted on 6/26/2004 @ 8:38 AM
Hi Nikhil,

It's neat to read the blog of one of the lead guys on ASP.Net. I love ASP.Net!

I was wondering, had the team every considered building something like this: http://youngpup.net/2004/distro in any of the versions? A lot of web developers that I speak with seem to be frustrated with the lack of support for simple client-side tasks, and this is a pretty simple solution.

Thanks for blogging!

Daryl Myrick

Posted on 7/9/2004 @ 1:10 PM
I have an interesting conundrum... I am trying to construct a server control that derives from System.Web.UI.Controls.Label and has one difference. It is culture aware. I have added an additional property called ResourceName that is the name of the string resource in an embedded resource file (.resx). Then using the ResourceManager retrieving the corresponding resource string using the GetString method.

I have gotten everything to work in run-time by having the web site create a ResourceManager object that points to the correct embedded resource and saving it in an application variable called Application[“ResourceManager”]. Then the server control uses the ResourceManager in the application variable to retrieve the resource strings.

The problem that I have is at design-time. I would like for the server control to be able to display the resource string in the designer so that designing the web page is WYSIWYG. I have it working but it is not reusable. Right now I have placed the server control in the web project in order to be able to get at the embedded resources. What I would like to do is have this server control in a separate assembly from the web project so that it can be used across multiple web projects. As you have probably already figured out, my problem is trying to get to embedded resources in the web project’s assembly file. The ResourceManager’s constructors insist on either a System.Type or a System.Reflection.Assembly to be passed neither of which have I been able to figure out how to get at design-time. I have have looked at the StackTrace and the web projects’s assembly is not in the call stack and I have iterated through all of the assemblies in the AppDomain and the web project’s assembly is not even loaded in the AppDomain. I guess it makes sense why it is not but it is making this a pretty tough nut to crack. Is there a way to accomplish what I am trying to do? Yes I realize that this is in ASP.Net 2.0 but I cannot wait for it to internationalize my web site.

Thanks,

Daryl Myrick

Sky Sigal

Posted on 8/29/2004 @ 1:04 PM
Off subject -- but without a Contact form -- have no idea how to send this to you...

First: loved your book. Absolutly the best that is out there.
Until I bought it, I had been making my local bookstore obsenely rich while I bought books on building controls -- until I found yours. All I needed to 'get it'. Thanks!

That said, I'm still looking for a couple of answers that were not discussed -- but then again, nobody else on ms public forums seems to know either :-)...
First: Is there anyway to get in touch with you to start a new email conversation about ParseChildren/PersistChildren?

Specifically, I am trying to modularize the layout of larger controls, by grouping properties of the control into sub-class instances (otherwise, with over 20 attributes the xhtml becomes unreadable --especially with the hashup that VS2002 does to it!)
In other words, properties start getting grouped like this.Images.ArrowUp rather than this.ArrowUp...). This is possible with ParseChildren=true.

Unless you want the control to be a container control...in which case ParseChildren must=false...and one needs a CustomBuilder + AddParsedChildObject to work back to the same point -- but this time read BOTH child controls and child attributes...

But to add a ReadWriteDesigner, PersistChildren must=true...then IDE stops serializing/writing changes from PropertyPanel to XHTML.... It only serializes childControls -- not properties.
If I leave PersistChildren=false, then I stand to wipe out the contents...(plus it doesn't show correctly in IDE -- only runtime).


[
System.Web.UI.ParseChildren(false),
System.Web.UI.PersistChildren(true),
System.Web.UI.ControlBuilder(Parser.MyBuilder)
System.ComponentModel.Designer(typeof(System.Web.UI.Design.ReadWriteControlDesigner))
]

is about as close as I got to what I am looking for ...but...no cigar.

Before losing more nights (weeks at this point) chasing this, I might as well check with the person who wrote it in the first place: is there a way?


Very best, and thank you for your book. Really good.
Sky

PS:
Not to mention ReadWriteDesigner not being able to render Dynamically added control..grrrr! -- I was wondering if there is a way to dynamically -- at runtime -- change the DesignerAttribute back and forth from ControlBuilder to ReadWriteDesigner...from a Bool in the PropertyPanel (?) ...but I don't think C# language provides attaching new attributes once compiled?

Mielz

Posted on 12/28/2004 @ 1:58 PM
Dear Sir,
Im sorry to contact you this way, i couldn't find your e-mail address.
I hope you can help me out.
Im trying to build my own IDE with ASP.NET for non-commercial purposes. I am now at the phase in which i am developing the ASP.NET design view. Its based on MSHTML with binary behaviors, but the lack of good documentation on IHTMLElementDefaults stalled me, actually all the internal MSHTML stuff is poorly documented. So i wondered wheter you could help me out a bit.

What i've done so far is:

1. I 've used MSHTML com component internally.
2. I've added the a namespace to the MSHTML component so it attaches my binary behavior to the <ASP:REPEATER> tag
3. I registered for notifiction, when loading is completed it sets the innerHtml to whatever comes out of ParseControll but this is where i got stuck.

There also seems to be *no* documentation available on google.

I hope you can help me out,
regards,
Mielz

Fritz Schenk

Posted on 2/4/2005 @ 2:25 PM
My initial comment: don't try to make the old and tired VB paragigm work on the Web.
I have seen it misused to the hilt by VB programmers that think that they are in a client-server environment.
My follow up comment: this is quite a good effort. In my opinion a worthwhile start by MS at OOP, but it shows that MS does not fully get OOP. A lot of the code is still procedural and not object oriented.
And, the disjoining of the CSS attributes is really poor; we should be able to use exactly the same attributes at server and client code.

Thanks - it is great improvement and I am getting greater efficiency and easy in implementation. By the way, I rarely use the IDE.

Dharmesh Parekh

Posted on 4/6/2005 @ 7:42 PM
Hi Nikhil,

Gr8,
It is pleasure to know nikhil-kothari (our brother) is working microsoft and specifically in development team.
Keep it up.

With Regards,
Dharmesh
The discussion on this post has been closed. Please use my contact form to provide comments.