Navigation
Calendar View
Categories
On this page....
Categories
Blogroll
Powered by: newtelligence dasBlog 1.9.6264.0
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent
my employer's view in anyway.
© Copyright 2008
, Kevin Castle
E-mail
|
 Thursday, November 16, 2006
I found yet another post at the Vertigo Team System blog which once again warns of the dangers of using the vs2005 website approach rather than the Web Application Projects. I do feel like I've been beating a dead horse about this, but I thought this was worth mentioning because it made its recommendations specifically from the Team System point of view. The author listed a reason, which I had never thought of, to choose the WAP over the Website: it's impossible to check in code analysis rules on Web Site projects, because the code analysis rules are stored entirely on the client! Overall, I just can't wait for the VS2005 SP1 to come out so that we can put all of this nonsense behind us and avoid having to sell the idea of using a project add-in rather than the VS2005 standard approach. What a mess this all was.
 Tuesday, November 14, 2006
I found this list of top 30 software engineering mistakes at DotNetKicks. # 20. No understand the deployment or hardware the software is to be installed on. Ohhhh it's for a Macintosh... lol. Well hopefully not that bad, but you get the point. I found myself asking....why the hell would anyone want to write software for a mac....which interestingly enough...is not in the list of top 30 software engineering mistakes. Enough of my anti-mac rants.
 Friday, November 10, 2006
This is a little late, considering the fact that .NET 3.0 (NetFX) was released a few days ago, but I still think it is worth noting. The release of .NET 3.0 doesnt really have any profound impact on me, however some parts of my company have begun integrating Windows Workflow Foundation into our new and existing projects. I'm almost positive at this point that I will not be able to get my hands on any projects which utitlize any of these new seperate features, however I am installing .NET 3.0 as we speak and am looking forward to learning about all of the new features. Download .NET 3.0 Here Just in case someone didn't yet know what were the new features in the 3.0 version of the framework, here is an entry @ Developer Zen which provides an overview using demos.
I've spent some time in the last couple of months getting cozy again with DotNetNuke (I've been working very slowly on a side project for a few months now). I used to work with DNN back in the 3.0 days but it has been almost a year now so when I downloaded the latest version, and fired up VS2005 I was overwhelmingly dissapointed with the fact that DNN 4 (ASP.NET 2.0) version uses the VS2005 website model as appossed to the VS2005 Web Application Project model. After searching around for a Web Application Version I came across this post by Shaun Walker (Mr. DotNetNuke) stating the following: So if we now shift our focus to the DotNetNuke web application framework, even though we identified some serious deficiencies in ASP.NET 2.0, we were still able to release DotNetNuke 4.0 on November 7, 2005 with full support for VS2005. In addition we were able to provide backward compatibility for modules created in VS2003/ASP.NET 1.1 ( from a RUN-TIME perspective ). We did this by reorganizing our project structure to conform to the VS2005 Web Project model. This involved a lot of time and effort but it also paid dividends by providing a number of new project benefits including support for the new Express development tools and support for some new RAD development concepts. However, one thing which we were not able to provide ( due to the limitations in VS2005 ) was a simple method for migrating the development environment for a DotNetNuke Module which was developed as a VS2003 web project and built/deployed as a private assembly. The lack of a decent migration strategy for early adopters of the DotNetNuke web application framework has created some confusion and frustration within the community. Although we were able to provide detailed tutorials and samples on how to create modules in DNN4, there is no simple method to convert an existing DNN3 module to DNN4. Luckily, developers have understood that the limitation is mainly related to the changes which Microsoft made in VS2005, an issue which is largely out of our hands. However with the recent announcements by Microsoft regarding the availability of the Web Application Projects, there is a large group of developers who think that their migration problems have been solved. Unfortunately, these conclusions are based more on marketing propaganda rather than fact. Recently, we have spent some time analyzing the Web Application Project model to determine its potential benefit to DotNetNuke. Almost immediately we ran into some serious technical challenges which we had not anticipated. It turns out that from a development perspective the two web project models are incompatible with one another. This means that within the same web project, you can only use one model or the other - not both. On the surface this may not seem like a big a deal but from a product development perspective, it certainly has an impact on the ways in which your developer audience will be able to use your application. Before we dig into the technical details, let's consider the high level business cases of the two project models: 1. Web Site Projects ( WSP ) - supported out-of-the-box in VS2005. Can be leveraged by ALL product SKUs from Express to Enterprise. Provides RAD development and deployment. 2. Web Application Projects ( WAP ) - supported as a separate download from the Microsoft site ( will be included as a fully supported model in VS2005 SP1 *official release date unspecified* ). Can only be leveraged in higher level SKUs - Standard Edition and above ( no support for Express Editions ). As you can see, the developer tool support aspect of Web Application Projects is sorely lacking. This is unfortunate as the changes made in DotNetNuke 4.0 to support the Express tools resulted in a massive benefit to our community. It completely eliminated the barrier of entry for developers by providing a rich set of development tools at absolutely no cost. And the Web Site Project model used in DotNetNuke 4.0 provides a RAD development environment which satisfies the needs for 90% of the developer community. For the other 10%, a free development environment is not a critical requirement; therefore, the Web Application Project model is a viable alternative. So why can't we have one DotNetNuke code base which supports both Web Site Projects and Web Application Projects simutaneously - providing the maximum flexibility and benefit to all stakeholders? Here is where we dive into the technical details... 1. WSP uses the app_code folder for dynamic compilation. If you switch a project to use WAP and do not remove the app_code folder, you will get "double" compilation - as ASP.NET 2.0 will automatically compile anything in app_code whether there is a WAP project file present or not. So basically you will end up with assemblies that have namespace clashes in the /bin. 2. All user interface files ( ie. *.aspx, *.ascx ) have a different syntax in WAP than they do in WSP. WAP projects use the old "CodeBehind=" attribute and must have an associated *.designer file for each user interface file. WSP projects use the new code-beside model which does not require "CodeBehind=". You can not have a mixture of these 2 types within the same development solution. In order to support WAP for the DNN core, we would need to convert every user interface file to use the WAP syntax - producing a completely different code base ( one that no longer supports WSP ). 3. WAP has different settings in web.config than WSP, since they use totally different compilation models. As a result of the technical issues noted above, we can not have a single DotNetNuke code base which supports both we project models. And since we feel that the Web Site Projects satisfy the needs of the majority of the developer community, WE WILL NOT CONVERT DOTNETNUKE TO A WEB APPLICATION PROJECT The first thing that I would like to say is that I understand that this is in now way an issue which DotNetNuke has created. This is a simple product of a new shift towards a lesser solution. Without losing all hope, I kept searching around on Google (after all this was posted last May of this year '06). I found a great article @ haacked.com describing how he created a C# Web Application from scratch and reconstructed a solution to run DNN in the new Project format. In addition, a zip download was provided so that you could could get a jump start on all of his hard work. Im not quite sure how I feel about moving away from the standard DNN download. Ill probably stick to the stupid website model, just because upgrades will be much easier, but I think its great that someone has actually "fixed" this problem that the new VS2005 website model started. If any reader has any additional info regarding this subject, your comments would be greatly appreciated.
 Thursday, November 09, 2006
CodeSmith 4.0 has been officially released. The press release can be viewed here and for a more in depth look at the feature set please check out one of my previous posts on CodeSmith 4.0 Beta 2 features. A few days ago this would have been big news for me, but as of yesterday after doing a product comparison on the NetTiers CodeSmith Template and LLBLGen Pro, we decided to go ahead and purchase LLBLGen Pro for our project's ORM needs.
 Sunday, November 05, 2006
I recently stumbled across a really cool site which takes full screenshots of your websites and then stores the images on its server. Its a great way to check the look and feel of your site from many different browsers and operating system combinations. Check out my KevinCastle.Net screenshots or go to BrowserShots main page. Here is a small sample 
 Friday, November 03, 2006
Remote desktop is something which I hold very dear to my heart. Its actually quite rare that Im on a computer where Im not remotely logged in to my home machine. From my perspective, why would I want to deal with moving from computer to computer when I can simply login to my desktop PC @ home and work away there. I even go so far as to remote into my desktop from my notebook when im out on the balcony. That being said a common issue which I needed to deal with was the ability to Remote Desktop into any one of the machines behind my router. In order to do so I had to configure RDT, on each computer, to use different ports. Check out this article on how to configure Remote Desktop for a non-standard port number.
 Thursday, November 02, 2006
Arron Hallberg has a really interesting post on his blog on how to add a custom task to the Team Foundation Build Process. The possibilities of this type of extensibility which most areas of TFS have out of the box are truly amazing. I have worked with a few code generation tools in the past, Wilson ORMapper, LLBLGen Pro, and now CodeSmith and immediately I thought how great it would be to automate these code generation tools into the build process. Ill probably take a stab at this very soon.
 Wednesday, November 01, 2006
Just a reminder of a few up-and-coming webcasts. Visual Studio Team Foundation Server HOW TO: Plan for, Install, and Configure Thursday, November 16, 2006 2:00 PM Central Time (US & Canada) Visual Studio 2005 and MSDN - a procurement perspective Thursday, October 26, 2006 2:00 PM Eastern Time (US & Canada) Momentum Webcast: Best Practices for Source Code Management with Visual Studio 2005 Team Foundation Server (Level 100) Thursday, November 30, 2006 11:00 AM Pacific Time (US & Canada) MSDN Webcast: Introduction to Microsoft Visual Studio 2005 Team Edition for Database (Level 200) Monday, November 20, 2006 10:00 AM Pacific Time (US & Canada) Visual Studio Team System Demo Thursday, November 02, 2006 2:00 PM Central Time (US & Canada) Visual Studio Team System Demo Thursday, November 30, 2006 2:00 PM Central Time (US & Canada)
 Tuesday, October 31, 2006
October 24th and 25th 2006 will go down as the most annoying days that I have had (for the better part of my software development life). Anyone who has seen this CS0433 error after converting a VS2005 website to a Web Application Project will feel my pain. Here are the following events which had occurred: - A VS2005 website was created and a small number of pages, controls, sitemaps, etc were added.
- A decision in the department was made to use the VS2005 Web Application Project for .Net 2.0 websites.
- Our group downloaded and installed the WAP Add-In (Download Here)
- I removed all of the VSS bindings (we are still waiting to receive our full Team Foundation Server edition)
- I followed steps to Upgrade a VS2005 Web Site Project to VS2005 Web Application Project tutorial.
- Everything went smoothly except that it was kind of a pain to add the namespaces to all of the source files. Nonetheless, I was happy because I was out of the horrific WebSite method of developing web applications. The application built correctly and I added to a separate project in VSS.
Everything seemed to be going great until I fired up the debugger and ran my application. This is the error which I would stare in the face for the next 8 hours Compilation Error Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS0433: The type 'AgencyPro.UserControl_NavTree' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\3f88d5c8\5840425e\assembly\dl3\e396fa14\0b806043_51f8c601\AgencyPro.DLL' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\3f88d5c8\5840425e\App_Web_navtree.ascx.78d7338a.aftov38w.dll' Better yet here is the actual screen so that you can have the image burned into your mind.
I did a search on Google and it turned out that tons of people had faced this similar issue. However, I was completely unable to find anything which directly gave me a fix. Initially I thought this issue was caused for several different reasons. - Maybe I needed to add the default namespace to all of the files in the project? - I did this and the issue continued.
- Maybe it was because I had the reserved directory App_Code in the project? - I removed this and the problem was still there.
- Maybe I needed to create an entire new project and add all of the files to that again? - I did this and the issue continued.
The obvious answer was that this error was being caused by the new ASP.NET compilation methods where a dll is generated for each of the pages (so lame in my opinion), but it was all a matter of trying to figure out how to override this behavior. After searching around in the web.config documentation, I felt stumped and due to the difficulty with generating a search phase which would turn up any real answers I was lacking documentation. At this point I was getting a little desperate and frustrated but I knew that if I created the project from scratch and added all of the files from scratch as well, then this issue would go away. In fact, the only solutions that I had found for this issue had been describing doing just this. So, I gave up, and rebuilt everything from scratch (meaning copying and pasting all of the code into brand new files) but I still had to know what the fix was. A buddy of mine @ work (Bruce Hoang) came over to my desk and told me to check out this article at DevX. Yes! All of my questions were answered. Solution: - Remove the App_Code directory from the project.
- Change the CodeFile attribute to CodeBehind on your .aspx, .ascx, .master, etc. pages.
Main Cause - I followed all of the recommended steps in the VS Web Site to VS WAP conversion but now in hindsite I think that the issue was caused by the fact that my files were still ReadOnly from VSS. Therefore when I ran the conversion, it was not able to change the CodeFile attribute to the CodeBehind attribute on all of the pages.
Above - The Attribute that stole my time! For an in depth article on ASP.NET 2.0 compilation and deployment issues I would recommend this as a must read.
As I mentioned in one of my previous blog posts, I have been using Windows Live Writer to add/update my blog posts. I recently ran across a new plugin called CodeHTMLer for Live Writer. Its a great way for posting formatted source code. You can read more at Wes' Puzzling's blog. Download the plug-in. Current supported languages include : C#, C++, Java, JScript, VB.Net, XML, and Powershell Sample Source CodeHTMLer /// <summary>
/// Summary description for Main.
/// </summary>
static void Main(string[] args)
{
// string variable
string myString = "myString";
/* integer
variable */
int myInt = 2;
}
|