Assembly Binding Log Viewer does'nt play nice with ASP.NET Development Server
29 June 09 05:05 PM | urig | with no comments

I've been experiencing an assembly binding problem when using Castle Windsor in a WCF service that I'm developing. It's a bit of a complex scenario so I won't delve into the details, suffice to say that when I try to inject an IServiceBehavior into my WCF service using Windsor's Wcf Integration Facility get the following exception: "Could not load file or assembly 'System.ServiceModel' or one of its dependencies. The system cannot find the file specified."

Seeing as I could'nt get to the bottom of the issue myself, I posted on the Castle Project Users Google Group and was instructed by Krzysztof Kozmic, one of the Windsor developers, to debug using fuslogvw.exe . Hoping this was more than some derogatory term in Krzysztof's native language, I googled for it and discovered that it is Microsoft's Assembly Binding Log Viewer utility. I quickly learned how to use it from a well written blog poston fuslogvw.exe and merrily went about using it to find out what went wrong.

Alas! Even though I followed the instructions, no data was collected by the Assembly Binding Log Viewer. It took me a while to figure out that the reason was that I was running my WCF service using Visual Studio 2008's built-in ASP.NET Development Server (WebDev.WebServer.exe). When I switched over to IIS as my host and recreaed my problematic scenario, I immediately received the details of the erroneous binding in fuslogvw.exe's main screen.

Turns out that Assembly Binding Log Viewer does'nt play nice with ASP.NET Development Server :). This seems rather odd to me seeing as fuslogvw.exe supposedly "listens in" on all CLR assembly bindings I find this rather odd. If anyone knows why this is and how it can be overcome please drop a line in the comments.

DevExpress menu disappearing from Visual Studio
23 June 09 08:48 AM | urig | 1 comment(s)

If you've installed DevExpress' CodeRush (aka IDETools) for evaluation but can't find the DevExpress menu in your Visual Studio, look no further. In evaluation mode the DevExpress menu is simply disabled and cannot be made visible unless you enter a valid registration code.

In my Visual Studio I can actually see the menu item flicker for a split second and then disappear.Too bad DevExpress chose to do things this way. It certainly won't in courage me to buy the product.

The one remedy for this situation is that the keyboard shortcut for the DevExpress Options dialog is still available. Go "Ctrl+Shift+Alt+O" and you're there.

Live from Microsoft Developer Academy 3
15 December 08 02:06 AM | urig | with no comments

Good Morning. It's a fine morning here at Microsoft's Developer Academy 3 event at Airpot City, Israel. A large crowd of developers and IT personnel has already gathered at this fanciful convention center and the first lecture is set to beging, fashionably late, at 09:15.

I will be live blogging the event via my twitter account. I hope my non-geeky facebook friends are not too annoyed at seeing my tweets appear in my facebook status line throughout the day. Those reading me here in the Microsoft Israel Blogs website can also keep track of my updated through the twitter box to your right.

My ticket for the event is covered by Microsoft Israel's dilligent staff who have sponsored several bloggers from the Israel community. I'm looking forward to learning and sharing what I learn today. And if you're here at the event then I'd also live to meet you in person :)

Here we go... My first lecture for today is "Hardcore C#: Power and Flexibility" by Pavel Yosifovich.

תגים:
Good Read: Design Guidelines for Exceptions
03 December 08 02:55 PM | urig | 2 comment(s)

I've often wished for real world guidance on exceptions handling in .net applications. Deciding on a strategy for throwing and catching exceptions is tricky. On the one hand exceptions are said to be the better way of handling execution errors in code. On the other hand, exceptions bring with them the overhead of instantiating them and throwing them which could negatively affect performance.

A while ago I've found some good advice in Microsoft's own Design Guidelines for Exceptions section in the MSDN Library. Particularly useful is the page on Exceptions and Performance

The whole thing isn't very long and contains a few humbling surprises. I recommend it.

Enabling SSL for GMail is Important
09 September 08 04:19 AM | urig | with no comments

I don't usually link to popular blogs and I don't usually blog one-liners, but this is important enough for me to make the exceptions:

If you have not turned on SSL for your GMail account yet, please do so now.

תגים:, , ,
Why you want to be a part of Alt.Net Israel
09 August 08 08:05 AM | urig | 4 comment(s)

I was fortunate today to take part in the first Alt.Net "unconference" to be held in Israel and let me tell you - it was an awesome experience!

The concept of Alt.Net is that a group of .net enthusiasts get together and organize a conference by themselves for themselves to discuss .net, its past, present and future. Simply put, the audience organizes and gives the talks. Here's a more profound explanation: http://davybrion.com/blog/2008/08/altnet-what-does-it-mean/

The first Alt.Net Israel meeting was held at the Ramat Gan offices of the Sela Group who were kind enough to host us on short notice. The conference was initiated by three very special people: Ken Egozi, Oren Eini and Roy Osherove. A big thanks goes to you guys for the initiative and the flawless execution! Thanks also goes to three companies that sponsored the event: SQLink, TypeMock and again, Sela Group.

We (actually they, as I was late and only arrived in time for some cold pizza) started Thursday evening with an introduction and a meeting to plan the talk sessions to be held the following day.

The schedule was made up of 5 columns (one for each room we had available to us) and 5 75-minute time slots. Each slot held a topic that enough people wanted to discuss. Here's my reconstruction of the schedule:

Agile and Customer Relations Tooling IoC Primer N-tier Architectures Refactoring Patterns
Web Unit Tests ORM ? Distributed Caches AJAX, JSON & MonoRail
High Performance Web TDD & UI WinForms Best Practices Dynamic Languages & DSLs Installers
TDD & Databases Domain Driven Design Mocking Framerworks Fluent Interfaces Multithreading & CCR
Working with Legacy Code SOA in the Real World Auto Build and Continuous Integration Source Control Strategies Behavior Driven Design

As you can see, it's a shopping list of almost everything that is hot and interesting in "the real world .net" today, at least in Israel. Note that the links I supply are to wikipedia articles and do not necessarily reflect the actual discussions today accurately.

It's interesting to note the lack of specific talks about WPF, Silverlight, WF and WCF. I'm surprised to see that these, despite being promoted by Microsoft, were not on people's minds. Oh well, the "Alt" in Alt.Net does stand for "alternative" after all.

The experience itself was genuinely uplifting to me. Getting together with people who are as enthusiastic as I am towards software development is such a rush. I've learned so much that I didn't know before, so the biggest thanks goes to you, my fellow participants.

If you're working with .Net in Israel and you like it, do yourself a favor and sign up to the Alt.Net Israel Google Group so you can be a part of the upcoming activities.There's also an Alt.Net Israel Facebook Group

The next unconference should be held in about 6 months but there are going to be plenty of other events even before that. See you there!

Using MSMQ for ASP.Net Session State?
21 June 08 06:20 PM | urig | with no comments

Digging a little into MSMQ and how it can help me with a website tracking mechanism I'm working on, I've come up on an original idea posted by Don Demsak in his blog.

Don suggests that when you need to have ASP.Net session state distributed across several web servers, you can possibly use MSMQ subqueues (a new feature in MSMQ 4.0) for storage. That is, ASP.Net could have one logical queue for each session its storing and use that to store the session data in a distributed fashion.

This might prove to be faster and more scalable that sharing Session State through a database, but I don't quite see how this can compete with a dedicated distributed session state solution like, for instance, ScaleOut's.

One quote that struck me as particularly important to remember for the future is:

"The first issue I've run across is that System.Messaging wasn't updated in .Net 3.5 to take advantage of MSMQ 4.0.  Reading from a subqueue is the same as reading from a regular queue, but you can't write to a subqueue using the System.Messaging namespace."

Remembering details like that is one of those things that you don't know when you're going to need but you're sure you will. Lucky I have a blog for that. Thanks Don.

How I found DonXml's blog is a story onto itself. I used Summize and TweetScan to search for people who recently mentioned MSMQ in their Twitter posts. Don was one of the people that Summize found for me and he was very kind in answering a few questions I had about MSMQ. TweetScan found considerably less results than Summize did BTW.

תגים:, ,
What is this Twitter thing anyway?
17 May 08 12:08 PM | urig | 1 comment(s)

One sentence answer: You post a short message on twitter, your friends/followers get a real time instant update of what you've written.

A little more verbosely: Twitter lets you post short messages to its web service. The messages can say anything, but are limited to 140 characters only. Typically these are updates on where you are, what you're doing, whatever. They can also contain links to things on the web like, for instance, the picture you just took of a huge duck sitting on top of the Tel Aviv Municipality building.

You can post these messages directly to the twitter website, or you can do so by sending an email or an instant message or an SMS message (!). There's also a bunch of cute apps you can install on your desktop to do this. Posting is quick, easy and mobile.

Anyone on twitter who's chosen to follow you can get your posts instantly - either in their twitter page, by email, by IM or by SMS. Typically these are your friends and your friends' friends and so forth.

A typical example of using twitter might be that you're going to a bar with a friend. You update on twitter and a bunch of other friends who are near by now decide to join. Then you get an update about a free party near by and y'all head on over there.

Geeks like me can replace "bar" with ".net user group meeting" and "party" with "Sergey Brin talking at GarageGeeks". :P

Actually, twitter is more about conversation. You send your message out to the world (or @someone specific) and the content is read by anyone following you and they can join in on the conversation. Great fun.

I've been having a lot of fun following and being followed on twitter. It takes a short while to get the gist of it, but I heartily recommend it for everyone. See you there

תגים:
Client-side Validation using ASP.net Dynamic Data?
14 May 08 08:54 PM | urig | with no comments

I've just finished listening to my first ever podcast (I know, I know). It was the "Phil Haack on Model View Controller" episode of ".Net Rocks!" and I enjoyed listening to it very much.

The episode is focused on ASP.net MVC, yet near the end Phil brings the new ASP.net Dynamic Data technology into the picture - surprisingly enough, in the context of validating data of the client-side.

Phil suggests that the Dynamic Data feature of using attributes on (or next to) the data model to hint at how data is to be rendered, might, in the future, be used to indicate how the data is to be validated. These hints might be read by the view and parsed into client-side validation code.

What I'm reading between Phil's lines is that validation could end up being extended into the client-side of things automagically!

The idea of using attributes on the data to enforce its validation is not new, but every implementation I've seen so far, has fallen short of crossing one critical boundary - the leap from server-side validation to client-side validation. If you want to have some of your validation happen on the client-side, for usability's sake, you always end up duplicating some of your validation code.

This is the first time I've heard of anyone in Microsoft (or anywhere) "picking the ball" on what, to me, is a kind of holy grail. I hope it's not a case of hearing what I want to hear and that we might see this budding in the future previews of .Net 3.5 Extensions. Go get'em Phil!

And The Pizza Goes To..
09 April 08 10:46 PM | urig | with no comments

Arik Fraimovich! Arik has answered the quiz question correctly and will receive a coupon for a free pizza at Pizza Hut with one free topping included.

Thank you Arik and thanks also to the many people who took part in the quiz. Better luck next time everybody ;).

The End is Nigh for Tech-Ed Eilat 2008
08 April 08 04:03 PM | urig | with no comments

Tech-Ed Eilat 2008 is winding down with the last round of lectures ending in 20 minutes. It's too early for me to sum the event up, not to mention I have a backlog of lectures that I need to review, but I can tell you one thing - It's been fun and it's been educational!

IMG_0002-2 (Medium)

Microsoft has done an excellent job in organizing this huge event - it is a huge success for all who took part, IMHO. There was a broad array of lectures properly divided into tracks. Lecture halls and equipment functioned very well and most lecturers gave terrific talks that well worth the time to listen to.

Again, I would like to thank Microsoft Israel, and specifically everyone in charge of the Microsoft Israel Blogging Community for getting me here and giving me the opportunity to learn and to give back by blogging the event.

It doesn't end here - I will write down my impressions in the following days and would also love to hear your feedback and how you experienced this year's Tech-Ed. Just leave your comments below.

For the next few hours I will be chilling at the Business Center, drinking beer and collecting freebies. See you at the XBOX station and have a safe trip home!

-- urig

Microsoft seriously endorses MVC/MVP
08 April 08 02:07 PM | urig | with no comments

One conclusion that I can draw from Tech-Ed Eilat 2008 is that Microsoft is in the process of endorsing the MVC / MVP pattern for real.

At least three of the talks here touched upon the subject. Noam King's talk focused on the upcoming ASP.net MVC framework that is soon to RTM. Ohad Israeli and Glen Block's talk on the Web Client Software Factory 2.0 introduced me to that particular implementation of MVP for ASP.net. And this morning's talk by Ron Jacobs, titled "The Perfect Pattern Storm: TDD, UX and MVP" gave a "Presenter First" MVP implementation.

None of these examples is properly mainstream yet, but it is clear that Microsoft have realized the advantages of this design pattern: The separation of concerns between the UI, the business logic workflow/process and the data model makes for a modular, testable and therefor reliable model for software construction.

I am eager to find a good MVC (or MVP) recipe for our ASP.net applications. In the next few weeks, I intend to dig deeper into what's in store for us ASP.net developers and I will post what I learn here.

I am also aware that I've been assuming that whoever reads me is familiar with MVC and that that assumption is wrong. So I also intend to start at the beginning and post about the basics of MVC/MVP along with the pros and cons of embracing this design pattern. Stay tuned.

Free Pizza if you Answer this Simple Question!
08 April 08 01:30 PM | urig | 2 comment(s)

Yes! Courtesy of Microsoft Israel's Blogging Community (http://blogs.microsoft.co.il/blogs), You too can win a free pizza from Pizza Hut (+1 free topping) here on the Tidbits from a .net life blog!

Just be the first commenter to answer this simple question correctly:

Name two new Microsoft technologies that I was excited to write about, here on this blog.

The one condition is, that you can't specifically mention any of the three flagship products that Microsoft launch at Tech-Ed Eilat 2008. Windows Server 2008, SQL Server 2008 and Visual Studio 2008 are out of the game, on account of being too obvious ;)

Good Luck! --urig

Tech-Ed Israel 2008 Party Photos are Up on Flickr
08 April 08 10:19 AM | urig | with no comments

Check out photos from last nights smashing rave at Eilat' port at http://www.flickr.com/photos/urig

Fortisaharof + Maor Cohen (+ Chaim Laroz) rock us:

IMG_0155 (Medium)

 

Lior and Yosi are having a great evening (complete with electric T-shirts) after busting their asses all day:

IMG_0172

More on flickr - http://www.flickr.com/photos/urig

How to make IIS 7.0 catch on?
07 April 08 12:56 PM | urig | with no comments

Having attended Leon Langleiben's 11:00 talk on IIS 7.0 for developers, I can't help but wonder why the adoption rate for the new technology is so low.

Depsite the impressive and extensible new pipeline, despite that it's modular, despite the powerful and easy configuration of it (that can be even shared across machines now), IIS 7.0 is hardly anywhere to be found in production environments.

It's understandable that upgrading from IIS 6.0 to IIS 7.0 is a daunting prospect. When I imagine trying to find out what is wrong, in real time, on an unfamiliar web server I, too, shudder. I think that's why most IT decision makers are hesitant to adopt the new version, despite all its sexy features.

However, the one hidden killer feature that could sell IIS 7.0 to whoever makes the decision has remained hidden. It is performance.

If Leon's numbers are to be believed, then IIS 7.0 outperforms both IIS 6.0 and Apache significantly. This is the one selling point that may break through the defenses of whoever sticks with IIS 6.0.

I would like to see MS give out specific and reliable performance indicators on IIS 7.0. If these are as good as I've heard, they're bound to make a change.

PS - for the record, I should state that Leon disagrees with me. He finds IIS 7.0 adoption rates to be satisfactory considering how new the product is and that it depends on the adoption of Windows Server 2008. He also thinks that the main selling points are those mentioned above, rather than the increased performance.

More Posts Next page »