April 2006 - Posts

Monad changed its name to Windows PowerShell...
Fri, Apr 28 2006 18:21

 

crosspost from http://rextang.net/blogs/work/

[via Scott Hanselman]

As I mentioned previously about Microsoft Command Shell (aka Monad), it's now changed its name to Windows PowerShell.

Refer to PowerShell blog for more information.

according to this blog post, RTM will be at Q4 2006, and RC1 is now available for download.

Technorati Tags: windows , shell 

 

Mail Disappeared!! Outlook Express File Size Limit??
Tue, Apr 25 2006 0:05

 

crosspost from http://rextang.net/blogs/work/

Ok, one of my friends sent me a mail asking that her colleague using Outlook Express and seems the inbox is too big and this colleague just lost his mails. According to my friend's mail, Corp MIS guy said that this is "due to" Outlook Express limitation of inbox file (.mbx file) size and if the inbox's file size exceeds certain size (say, 2GB for example) , Outlook Express will "automatically" delete ones mails in inbox folder, "without notice", which, according to my friend's description on the mail she sent to me.

Did a search via Google, seems seldom people have this problem, but still found something about this here.

According to this discussion thread, There should be kinda problem when Outlook Express has big inbox file size, and then mails may lost. but it should be just "archived" to somewhere else and should have ways to diagnose it. There is a site called OEHelp which got some tools to help solve this problems (not all free) and may worth a try. Possible reasons of missing mails are described here.

Well, as a personal opnion, I do think making folders to classified mails and move out from inbox will be a good practice of mail management, no matter what offline mail client one used. Although, now most of offline search tools (MSN Toolbar / Google Desktop) offer convenient ways to fast find mails for you, it's still good habit of keeping things organized by oneself so that one may not accidentally running into unknown chaos!

and the MOST important, make and do RUN YOUR OWN BACKUP PLAN!!! it's all just about backup!!!

Technorati Tags: email , outlook express

 

GTalk now with pictures...
Sat, Apr 22 2006 2:09

 

crosspost from http://rextang.net/blogs/work/

Just got a notice when I login to Google GTalk, updated version now available on the website, with pictures for accounts, just like MSN and Yahoo.

Saw from KBCafe about this at 4/1 , but now it's officially available from GTalk download page. go update it!

Technorati Tags: google , messenger

 

by Rex Tang | with no comments
Filed under: ,
Visual Studio 2005 Express products will be free permanently...
Fri, Apr 21 2006 2:26

 

crosspost from http://rextang.net/blogs/work/

[via 福井 厚] [via Dan Fernandez]

According to Dan's post, Visual Studio 2005 Express product series will now be free permanently, instead of only free for one year.

Well, should be good to promote Microsoft Development Tools...

Technorati Tags: microsoft , ideprogrammingvstudio

 

What happened about 04/18 Newsgator outage...
Wed, Apr 19 2006 18:34

 

crosspost from http://rextang.net/blogs/work/

As I noticed about the Newsgator outage yesterday, got Ronnie Gilberson's comment in response of the reasons today. thanks for the notice!

Based on Ronnie's post , it should be the SQL Server database inconsistency state that cause the database server down and not able to trigger the fail-over system, and would need to close whole system from outside internet traffic of queries to play back the log file to bring the database back. because of the large size of log file, it took a quite while for system to recover.

Although the main reason of the cause was still unclear, at least now people know what's going on behind the outage, and able to think theirselves that what may need to be done to prevent something like that in their own systems. Still appreciate people in Newsgator to bring the service back. and would like to know the real reasons of cause once you guys in Newsgator find out. thanks!

Technorati Tags: rss , newsgatoroutagesql server

 

Claim your blog that forbidden script tag in your Technorati account...
Wed, Apr 19 2006 3:02

 

crosspost from http://rextang.net/blogs/work/

Most blog services may forbidden some html tags to use in the content. This may cause problems if one wants to claim a blog to one's Technorati account.

Generally Technorati requires you to insert a script tag with an auto-generated .js file inside your blog layout to let Technorati recognizes that this is actually your blog and permits the claim. but in some blog services like MSN Spaces or Yahoo! 360, which may not allow modifying the layout or have <script> tag. There is another way to do the claim.

I remembered in the past time Technorati did offer the way for people to claim their blogs without script tag support, but now Technorati seems not offer it anymore. The Technorati FAQ did specify that there should be an http link showed up in the setup page for people to put in a url link tag in their blog to be as a claim of the blog. but now the claim blog setup page didn't have that http link anymore.

Although the http link disappeared in claim blog setup page, and only the script tag string appeared, it's still able to make the http url yourself. just get the filename of the .js file and form the following url link:

http://www.technorati.com/claim/[the_js_filename]

then put the link in somewhere of your claiming blog as a link entry. Technorati will still claim this blog into your account.

I've done that with my MSMVP blog as well as MSN Space blog already.

Technorati Tags: rss , technoratiblog

 

Newsgator was down! more than 4 hours!!
Tue, Apr 18 2006 21:59

 

crosspost from http://rextang.net/blogs/work/

right after I said that the service is good! pretty ironic... Orz

since this afternoon FeedDemon kept telling me that it could not sync to Newsgator. I was originally thought that maybe the ISP at Taiwan got problems since there was not any post at Technorati saying about this. but a tracert showed that the path and connection to the server is ok. 4 hours later, the website was still down and there are starting to have some posts showed at Technorati.

Newsgator didn't have any notice about the down time and maintenance. therefore basically the paid users were not aware of the down time at all. that should not be a good way for a paid service.

anyway. please bring back the service ASAP!

Technorati Tags: rss , newsgator

 

by Rex Tang | with no comments
Filed under: ,
FeedDemon 2.0 is really cool...
Mon, Apr 17 2006 17:39

 

crosspost from http://rextang.net/blogs/work/

Well, I have to say... FeedDemon 2.0 ROCKS!!!

FeedDemon 2 ROCKS!!!

I used to have Newsgator for Outlook to store my RSS feeds content to read offline. as my Outlook getting bigger and bigger that full of .pst files open simultaneously for different purposes (personal archive pst, all the contacts pst, work pst, etc), it become another heavy load for outlook to manage Newsgator feeds pst file, since I got 170 feeds now and the sync become quite slow in Outlook.

FeedDemon 2.0 released couple weeks ago, I installed it and because I am a paid subscriber to Newsgator, I am auto a licensed user to FeedDemon 2.0 . I have to say that it's fast and easy to use. and it did catch users' behaviors while reading RSS feeds. Some of the goodies I feel as follows:

  • The Sync of feeds are fast!
  • Newspaper view is natural
  • Tabbed IE browsers to fast going to the web of certain feed.
  • News item view is just like Newsgator for Outlook and easy to adapt
  • Watch Items to filter all the RSS feeds by self-defined keywords - this one is great!!
  • News Bin to track interesting posts in one place.
  • Fast news item filter to filter in real-time without delay - this one is great too!
  • More surprises to be found later...

Well, it will be my another must-have-app in a daily basis. Also thanks to Newsgator Online to store and manage all my feeds in one place that can sync everywhere. I paid for it and I am really satified with its services!

[Updated 2006/04/19]

[via KBCafe] here is a review from PCMag.com about FeedDemon 2.0...

Technorati Tags: rss , newsgatorfeeddemon

 

by Rex Tang | with no comments
Filed under:
A nice freeware tools list...
Mon, Apr 17 2006 14:32

 

crosspost from http://rextang.net/blogs/work/

[via digg]

besides Scott Hanselman's nice tool list for developers, here is another good freeware tools list to solve many common problems while the use of computer software.

I want a Freeware Utility to ... 300+ common problems solved...

Technorati Tags: freeware , tools

 

by Rex Tang | with no comments
Filed under:
What's new in C# 2.0...
Mon, Apr 17 2006 13:24

 

crosspost from http://rextang.net/blogs/work/

Go to the foundation if you want to master something!

As I am digging into ASP.NET 2.0 stuffs, and using C# as my primary language, I found that it should be necessary to take a look of those new features provided by the language (eg, partial class, etc) before I dig more into the application side of programming. One should know exactly how many gadgets he can use before starting to build a masterpiece.

A search to Google can find many resource about this. Microsoft C# language site provided many good resources to dig into. The C# 2.0 Language Specifications Draft provides new feature detail explainations through out the document, including the follows:

the 100+ pages draft has a detail explaination of those new features provided by C# 2.0 language. take a look if you want to know more about the language itself.

Technorati Tags: programming , C#csharp

 

by Rex Tang | with no comments
Filed under: ,
Where is [file].aspx.designer.cs in native VS2005 Web Project?
Sun, Apr 16 2006 19:53

 

crosspost from http://rextang.net/blogs/work/

Just had a further reading of the migration from ASP.NET 1.1 website to ASP.NET 2.0 one. ScottGu's post listed his Web Application Project, which is a good resource for understanding these topics.

In ScottGu's tutorial article about migrating from ASP.NET 1.1 website to ASP.NET 2.0 one, he mentioned those [file].designer.cs files generated while convering the 1.1 compatible web project, which makes me curious about where were those [file].designer.cs files of native VS2005 web project? basically I can only see those partial classes for my own written code, where were those designer generated control definations go?

By asking Google about this, found out some info via this forum thread and leads me to Rick Strahl's post talking about Page Inheritance in ASP.NET 2.0. According to his post about the new page class creation model, all the designer generated codes are now auto generated by asp.net compiler at compile time. as Rick stated:

Note that a partial class does not contain control definitions or InitializeComponent that usually hooks up the events. ASP.NET generates the surrogate partial class at compile time that represents the ASPX page code ASP.NET generates another partial class that contains all the control definitions, the event delegate hookups and setting of Page settings (like EnableSessionState, Trace etc.).  Both of these partial classes combine to make up the base class that the ASPX page inherits.

That should be the answer why I am not able to find those so-called [file].designer.cs files in native web projects in VS 2005, and Rick's post is a good one to get further understanding of the new ASP.NET 2.0 inheritance model.

Technorati Tags: programming , asp.net

 

Source Code for the Built-in ASP.NET 2.0 Providers Now Available for Download...
Sun, Apr 16 2006 17:48

 

crosspost from http://rextang.net/blogs/work/

[via Scott Watermasysk] [via ScottGu]

According to ScottGu, "The source code is released under a permissive license that allows both commercial and non-commercial re-use of the source code, and should be very useful both for people wanting to build their own custom providers (you can take our source and just tweak it if you want), or to better understand/debug our existing ones."

This should be another goods to have when digging into the design of ASP.NET 2.0...

Technorati Tags: programming , asp.net , provider , model 

 

[ASP.NET 2.0] The context parameter in ClientScriptManager.GetCallbackEventReference Method...
Sun, Apr 16 2006 8:46

 

crosspost from http://rextang.net/blogs/work/

Wrox - Professional ASP.NET 2.0I am reading Scott Hanselman co-authored, published by Wrox press, titled Professional ASP.NET 2.0 book recently to get a quick pick up of what's new in ASP.NET 2.0 compared to ASP.NET 1.1.

It's a nice book to  read and it covered all the topics related to ASP.NET 2.0, including what's already had in ASP.NET 1.1. A comprehensive guide to people who want to enter new ASP.NET 2.0 world, no matter one is already familiar of ASP.NET 1.1 programming or not. A recommand book to read!

 I am reading in a fast pace that browsing to those topics I was familiar during my work with ASP.NET 1.1 , and spend time in those which are new in ASP.NET 2.0. just passed chapter 4 and stop at the new ASP.NET 2.0 feature, Client Callback.

The example provided in this book is simple to understand, but the idea behind the design of the new Client Callback feature didn't well show up through the examples. I've also Googled some others and found this one at Code Project written by Invincible Poison. This one used a more easily understandable way trying to explain how Client Callback is working, although I've noticed that the provided sample code seems changed that didn't fit into the sample code snippets provided throughout the article.

The big concept behind the whole Client Callback things is clear enough for me now. basically, I'll consider the new Client Callback feature provided by ASP.NET 2.0 as a simplified version of what I've used the Ajax.Net framework . since Client Callback is actually using .axd to encapsulate the callback logics , while Ajax.Net is actually using a Http handler. but Ajax.Net can actually taking arbitrary parameters while client-side callback and even simulate DataSet and other customized object types from server-side return to client, also Client Callback only use one arg string parameter to pass all the paramaters, which means that when multiple paramaters are needed to pass across XMLHttp, developers need to concatenate all the parameters into one single string in order to pass it. Since this Ajax like feature is now officially provided by ASP.NET 2.0 , although not perfect yet (to let 3rd parties make better Client Callback controls), but should be a good start!

The other things that make me curious is the use of "context" parameter in GetCallbackEventReference function. many examples all stated that the "context" parameter mostly would just doing ok by inserting a string "context" and it will work, but what exactly the "context" string means? how it is used in the whole Client Callback framework? seems not many examples talk about this.

By reading the MSDN Library about this function, the function signature is as follows:

public string GetCallbackEventReference (
    Control control,
    string argument,
    string clientCallback,
    string context
)

where as the explaination of context parameter is as follows:

context
Client-side script that is evaluated on the client prior to initiating the callback. The result of the script is passed back to the client-side event handler.

by looking at the example provided from MSDN, it will be clear about what actually the context parameter is doing.

on the server side code:

        // Get a ClientScriptManager reference from the Page class.
        ClientScriptManager cs = Page.ClientScript;

        // Define one of the callback script's context.
        // The callback script will be defined in a script block on the page.
        StringBuilder context1 = new StringBuilder();
        context1.Append("function ReceiveServerData1(arg, context)");
        context1.Append("{");
        context1.Append("Message1.innerText =  arg;");
        context1.Append("value1 = arg;");
        context1.Append("}");

        // Define callback references.
        String cbReference1 = cs.GetCallbackEventReference(this, "arg",
            "ReceiveServerData1", context1.ToString());
        String cbReference2 = cs.GetCallbackEventReference("'" +
            Page.UniqueID + "'", "arg", "ReceiveServerData2", "",
            "ProcessCallBackError", false);
        String callbackScript1 = "function CallTheServer1(arg, context) {" +
            cbReference1 + "; }";
        String callbackScript2 = "function CallTheServer2(arg, context) {" +
            cbReference2 + "; }";

        // Register script blocks will perform call to the server.
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1",
            callbackScript1, true);
        cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2",
            callbackScript2, true);

noticed that cbReference1 string variable is actually taking the whole client function definition as the input of context parameter, while at cbReference2, it's actually supplying empty string as context parameter input, because of that the callback function of cbReference2 is actually defined in the aspx page's javascript block. by investigating the sample code as well as reading the description of context parameter again, it should be easiler to understand that the context parameter is actually a place to supply client-side block in server-side code block while defining a Client Callback client-side procedure! thus one can define the callback client function either in the server-side (code-behind file) or in the client side (aspx file), depends on where is proper to put it!

So, if one is putting client callback function in aspx page inside a script block, the context parameter can actually be specified as empty string and the program will still run, avoiding the "context" string input into context parameter that confuse the program readibility.

the other thing that's also interesting to see via the example code in MSDN Library:

<body>
    <form id="Form1"
          runat="server">
    <div>
      Callback 1 result: <span id="Message1">0</span>
      <br />
      Callback 2 result: <span id="Message2">0</span>
      <br /> <br />
      <input type="button"
             value="ClientCallBack1"
             onclick="CallTheServer1(value1, alert('Increment value'))"/>   
      <input type="button"
             value="ClientCallBack2"
             onclick="CallTheServer2(value2, alert('Increment value'))"/>
      <br /> <br />
      <asp:Label id="MyLabel"
                 runat="server"></asp:Label>
    </div>
    </form>
</body>

CallTheServer1 and CallTheServer2 are actually both with 2 arguments, "arg" and "context", according to previous code block's definitions. now, what's the mean of this "context" argument in these client functions? is this same as the context parameter previously mentions above or even it points to the same memory place?

Actually it's not the case. the context argument here seems not related to the context parameter mentioned above. and the function to this argument is simplely a client script block to let developers specify actions prior to callback to server. noticed that it's actually taking a javascript instance instead of "a string of javascript" as its input, which is also different from those demonstrated in other examples, which normally also just tell readers to supply a "context" string. Therefore, if there are no other client-side actions needed to be done before callback to server, the second optional parameter can actually have a empty string.

Conclusion:

  • the context parameter of GetCallbackEventReference Method is a place to put client-side code block in server-side to specify the callback client function to use. if not specify in server-side, then this parameter can be left to empty string and put the actual client callback function in client side aspx file.
  • the calling server function's second "context" argument is optional (but can not be stripped), which can be supplied by a javascript code block to let it run before Client Callback process prior to actually make the call back to server.

Technorati Tags: programming , asp.net , ajax , callback 

 

Adding Northwind DB to SQL Server 2005...
Sun, Apr 16 2006 4:01

 

crosspost from http://rextang.net/blogs/work/

Am trying some ASP.NET 2.0 samples and found that there were no longer Northwind and Pubs DB associated with SQL Server 2005 installation.

found at Coding Horror's blog post to add them back by downloading those sample databases from Microsoft download site.

just download, install, and put those .mdf and .ldf files back to SQL DATA folder and then attach back to the server will put those sample DBs back.

Technorati Tags: microsoft , sqlserver 

 

Monad - next version of Microsoft Command Shell...
Thu, Apr 13 2006 22:23

 

crosspost from http://rextang.net/blogs/work/

I've read the info from Scott Hanselman talking about Monad for a while (also listened to his podcast about this). it's a very exciting thing people can have in Windows world, a more enhanced shell interpreter then current Windows Shell (WSH). to telling a truth, traditional batch file (.bat) was really feature limited and can't do many things what shells in unix world can do. by reading Ryan Paul's guided tour of Monad, really feeling the power of what it can do.

To download the beta for test, go to Microsoft Beta site to find it. or just use this link for the file download. associated documentation pack is here.

If you are Windows IT Pro guys, I think you'll like it...

Technorati Tags: windows , shell 

 

Google Calender Launched...
Thu, Apr 13 2006 20:29

 

crosspost from http://rextang.net/blogs/work/

gcallogo.gif

[via ijliao] [via digg]

gcalscreenshot.jpg

Another AJAX enabled web calendar application, which is good to use, via Google...

Technorati Tags: google , calendar 

 

by Rex Tang | with no comments
Filed under: ,
Team Foundation Server installation memo...
Tue, Apr 11 2006 12:23

 

crosspost from http://rextang.net/blogs/work/

This is a memo for my installation of Microsoft Team Foundation Server, in case I'll have to install it again later.

I was doing all the installation under VMWare Workstation 5.5.1 build 19175. The big tip is... just follow Rob Caron!

You'll need the latest version of TFS image as well as installation guide. for possiblely security problem of reading the guide you'll need to refer to this KB to solve it.

The installation is logically simple by just following the installation guide, but actually there are lots of things need to be aware during installation process.

First of all, determine whether you want a single-server deployment or a dual-server deployment. for my testing environment, I'll just go single-server deployment. about how to partition applications throughout virtual machines, originally I was doing a 2 VMs installation with one for Active Directory server (simple windows 2003 server with AD installed, only giving 200mb ram), and the other with all the stuffs (data tier, application tier, client tools, visual studio 2005). later found that with this configuration I'll have to give about 1.5GB ram for the VM to let it run smoothly. so I changed the configuration and install all the stuffs again.

The final decision is to use 3 VMs for the whole environment setup. 1 VM for AD, 1 VM for TFS Single-Server Deployment, and 1 VM for my Dev Env (SQL 2005, VS 2005, tools, utils). AD VM used 200mb ram and is pretty enough, TFS VM used 1024mb ram, those 2 resides in my home server with 2GB ram so that I can still have about 800mb ram for normal server operations like DNS server, mail server, etc. Dev Env VM resides in my working notebook so that I can do my work no matter the TFS Env existed or not.

All 3 VMs used BlackIce personal firewall. for AD VM, there are ports need to be opened to let AD packets flow through, the port info is in this post. for TFS VM, refer to TFS installation guide for ports need to open (basically ports for SQL server services, TFS services). several AD accounts needs to be opened for installation, also remember to grant proper ACL for those accounts in TFS VM (the log on locally security principle for TFSService and TFS Setup, etc). after all this, just install IIS + ASP.NET , install WSS 2.0 sp2 (with English language template if you are not using english version OS like me, and remember to install language template SP2, it's a single package supporting all the language templates you've installed in your WSS, so you'll only find a English version of the language template SP2 package via Microsoft download site), install SQL Server 2005, install SQL Server hotfix, install .NET framework hotfix (all reside in TFS iso image), and then install the TFS single-server deployment. so the TFS VM is done.

Recommanded to take a snapshot before going the final install of TFS itself. we now got trial edition of TFS, although it's valid of 180 days which is long enough for evalution, and also possible for directly upgrade to registered version later. saving a snapshot here gives you the possibilities if you want to change your mind to install another version like the workgroup one or some others in later release, without to re-process all the pre-requesties again. that's the goodies what VMWare workstation gave you!

for Dev Env VM, have to notice that VS 2005 now not includes Team Explorer as a default installation. therefore no matter what version of VS2005 you are installing (I am using VSTS), remember to install Team Explorer via TFS image to let you have the access abilities to TFS. VSTS is easy to install just to run the setup and click click click, done! that's pretty much for Dev Env VM, simple.

after all 3 VMs are done. it's now time to test the connectivities of the environment. notice that it's possible to change WSS admin port by using stsadm.exe if you want to manage your own port mapping (WSS and SharePoint tricks). I did change the admin port mapping to other port numbers instead of port 17012 specified at installation guide. and later found that there will be problems creating team site in team explorer. here is an article showing the process of changing some configuration settings of TFS, including the server name and service mapping to let TFS run via internet access. I did do the tfsreg.exe things to change the wss admin port mapping but still not work at all, seems there were other places that records this port mapping that didn't change via tfsreg. so I gave up changing the port and set it back to 17012 and everything is working fine for a team project creation.

It IS required to have at least 1gb RAM for TFS VM! in the idle time of TFS VM, with all the SQL Server 2005 Services and TFS services running, it already costs about 750mb ram. it will be over 900mb ram when a team project is in access operation with one dev vm. didn't have chance to test if there will multiple Dev VMs accessing the same team project or multiple team projects.

That's pretty much of what I've got on Team Foundation Server RTM installation. next step will be read articles of MSF 4 and MSF for CMMI.

Technorati Tags: microsoft , vstudio

 

Network Ports used for Active Directory authentication...
Wed, Apr 5 2006 23:31

 

crosspost from http://rextang.net/blogs/work/

As I am setting up a VM of Windows 2003 Server Active Domain, tried for ports needed to successfully let other machines authenticate themselves to the AD server. those ports are needed to be opened on AD server's firewall:

  • TCP 135 : MS-RPC
  • TCP 1025 & 1026 : AD Login & replication
  • TCP 389 : LDAP
  • TCP & UDP 53 : DNS
  • TCP 445 : SMB , Microsoft-ds
  • TCP 139 : SMB
  • UDP 137 & 138 : NetBIOS related
  • UDP 88 : Kerberos v5

Technorati Tags: microsoft , active directoryfirewall

 

Search

This Blog

Tags

Community

Archives

Syndication

Email Notifications

News

  • Now relocated, living and working at Tokyo, Japan.

    Rex Tang, MVP ASP.NET 2006

    This blog is depreciated and not update anymore. Please refer to Rexiology@MSDN Blogs for continuous updates.

    This is a mirror of his technology blog Rexiology::Work

Microsoft Sites

Other Sites

Blog pools

Bloggers

My other places