UPDATE: Turns out it was just Gallio (v3.0.5 build 546 - x86). I also tried uninstalling TestDriven.NET and the problem persisted.
This weekend I spent some time working with the release candidate of ASP.NET MVC to familiarize myself with the new features, only to find Visual Studio crashing every time I opened a View. It was pretty frustrating, especially since this was the almost ready for prime time version, and I had been working without any problems for a while using earlier versions. Obviously I started searching the interweb for an answer.
Zero point two seconds later Google found me an answer on StackOverflow. Turns out I'm not the only one who has experienced this strange behavior. When I say strange behavior, I mean “.NET Runtime version 2.0.50727.3053 - Fatal Execution Engine Error (70DC5E00) (80131506)” strange. I had started by removing the Spark View Engine add-in I have for working with Spark and MVC (which is awesome). That didn’t fix it though. A Christian Dalagar pointed out that he experienced the same problem and it appeared to be a conflict between Gallio and TestDriven.NET. Hmmm…That’s funny. I happen to have both of those installed as well!
This was the hard decision…well not really. I can’t live without my TestDriven.NET. Sorry Gallio. Maybe we’ll meet again in another life. Don’t get me wrong I like Gallio, and MBUnit is kind of growing on me, but TestDriven.NET is the best way to run tests in Visual Studio.
PROBLEM: Opening ASP.NET MVC RC Views Crashes Visual Studio when both TestDriven.NET and Gallio are installed.
SOLUTION: Un-install Gallio.
Recently, while trying to mash Team Foundation Server and SQL Server Reporting Services, I needed to convert a DateTime in SQL to a short date string. This is how I did it.
CONVERT(VARCHAR, ClosedDate, 101)
That's it. The definition for doing so is as follows:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
MSDN has quite an article describing CONVERT in depth.
The good people at GLUGnet invited me to speak last night and I enjoyed the opportunity very much. As promised I have uploaded my sample pages and slides.
Links:
1. Google Blueprint 2. jQuery 3. IETester
1. Google Blueprint
2. jQuery
3. IETester
I will be speaking about jQuery at the Greater Lansing User Group (for .NET) tomorrow. Stop by if you'd like to have your JavaScript world turned upside down. I'll also be talking about CSS and why you really need to know it well when it comes to web development and jQuery. But I'll save that for tomorrow.
See you there!
For all those who made it out the the Lansing DODN, Thank you for attending my session on Dependency Injection with Spring.NET. I hope I was able to set some folks on the path to IoC enlightenment, or at least break any barriers in your way to getting started. I also got to attend some other great sessions by Len Smith, Jay Wren, and Michael Eaton on NHibernate, Inversion of Control, and Active Record, respectively.
There were some good questions asked during the discussion so I've posted the question and answerers below. Please forgive me if they are not verbatim.
Q - Do you have to configure every member of an object in the container?
A - No. Spring.NET will use a mechanism called Autowiring to infer the object instantiation and configuration. Autowire is set to 'No' by default and you are encouraged not to change this for large applications, since specifying your collaborators explicitly gives you a feeling for what you're actually doing (always a bonus) and is a great way of somewhat documenting the structure of your system. Setting Autowire to 'byType' will resolve collaborators by type instead of by name. See 5.3.5 Autowiring collaborators
A - No. Spring.NET will use a mechanism called Autowiring to infer the object instantiation and configuration. Autowire is set to 'No' by default and you are encouraged not to change this for large applications, since specifying your collaborators explicitly gives you a feeling for what you're actually doing (always a bonus) and is a great way of somewhat documenting the structure of your system. Setting Autowire to 'byType' will resolve collaborators by type instead of by name.
See 5.3.5 Autowiring collaborators
Q - Does Spring.NET configure objects as singletons by default?
A - Yes. But turning this off is as easy as adding singleton="false" to the object definition in the configuration file. See 5.4 Object Scopes
A - Yes. But turning this off is as easy as adding singleton="false" to the object definition in the configuration file.
See 5.4 Object Scopes
Q - So which is better, Castle Windsor or Spring.NET?
A - It depends what you're doing. You might find that you use Windsor for one thing and Spring.NET for a another. While both frameworks have some overlaps in functionality, there are also some stark differences that give each one it's place in the world. Why not try both? They're free to download, and if you follow good OO practices, then you shouldn't be tightly coupled to either framework.
I've also posted the slides, demo, and a video of the presentation for those who are interested.
1. Slides
2. Demo
3. Video
Lansing Day of Dot Net from Ryan Montgomery on Vimeo.
Thank you Matt for taking the video!
Home
© Rapidparts, Inc 2008 | 2950 Walkent Ct. NW, Grand Rapids, MI 49544 | Phone 616.647.2500 | info@rpionline.com