Archives
-
CodeSmith Status Update
Thought I should let everyone know where CodeSmith is at and what is coming in the near future. Here are some interesting numbers:
-
A First Look at ASP.NET v.2.0
I just got done reading this book and I thought I would let you guys know that it does a really great job of introducing you to all of the new ASP.NET 2.0 features. It doesn't go into a lot of detail, but it does a great job of letting you know what's coming and how it will work. I would highly recommend this book.
-
Access-VB-SQL Advisor Magazine: Code Generation With CodeSmith
I just went to the bookstore and picked up a copy of the November issue of Access-VB-SQL Advisor Magazine. Mike Gunderloy had given me a heads up that there would be an article about CodeSmith in this issue. I figured it would be burried deep in the magazine somewhere, but boy was I surprised to find out that the article was on the cover!!! Very cool!! Run, don't walk, to your closest bookstore and pickup your copy now!
-
New Built With CodeSmith Icons Available
If you are a CodeSmith user and would like to help spread the word, you can put one of the built with CodeSmith icons on your website. See all the icons here
-
CodeSmith Getting Some Press
Here are some recent articles about CodeSmith:
-
Today was a good day
Bills win 31-0, Miami loses to the Texans and the Bills are in sole possession of 1st place in the AFC East after one week. There is a long way to go, but what a great start!
-
Welcome Mark Bonafe!
Welcome to the community Mark! I will definately be taking you up on your IBindingList, ITypedList and IEditableObject offer. I am looking into creating an O/R mapping schema for CodeSmith and then I would like to build a complete set of pure OO templates on top of that.
-
New Job!!
I will be starting a new job at Match.com this coming Wednesday. I am extremely excited about the job and I would like to thank Jason Alexander and Richard Wetzel for helping me out on the inside. Match.com has had a recent success story with .NET and it will be a blast getting to see how they did things.
I'm also pretty excited to bring CodeSmith into a development team this big and see if I can get it to catch on. No matter what happens, I'm sure it will be a great learning experience and that great things will happen as a result. -
DotNetToolBox.com Reviews
I recently wrote two reviews for DotNetToolBox.com, one on NUnit and the other on CodeSmith, two of my favorite free tools.ÂIf you get a chance you should take a couple minutes and contribute a review on your favorite free .NET tool, it will seriously only take you about 10 minutes.ÂApparantly Scott will really appreciate it. :)
-
.NET Roadmap - C# Edit and Continue??
Lots of people are blogging about the updated information available in the .NET Roadmap. Am I the only one concerned that the Edit and Continue features specifically mentioned for VB.NET will not make it into C# as well?? Maybe the performance will be so much better in VS.NET Whidbey that it won't be that big of a deal, but currently I find myself craving this feature constantly.
-
view
"Eric Sink (CEO of SourceGear that producesVault)and Matthew Reynoldshave both been talking about how great Vault is over SourceSafe."
-
view
[Royo] feels left out because he can't make it to PDC. Well I won't be there either, and I'm really not upset about it at all.
-
GSLgen vs. CodeSmith
I hear a lot of talk about people using GSLgen as their template-based code generator of choice and I am wondering what features GSLgen has that you would like to see in CodeSmith. I have downloaded GSLgen and tried it very briefly and I didn't notice anything it could do that CodeSmith couldn't. Any feedback would be appreciated.
-
Patterns of Enterprise Application Architecture
Well, I am done reading the book now and I must say that I was quite happy with it. I would highly recommend it to anyone in the software engineering field (especially if you are wondering what all these patterns everyone is talking about are). It is great to be able to put a name to a lot of the patterns that I was already implementing (I just didn't know it) and to also get a few good new ideas as well.
-
In the future, there will be robots!
The code generation crowd are at it again.
So, "writing code" is stupid is it? Well what will we call writing the requirements in a form that the code generators can understand and why will it be easier to get the requirements right?
I like code generators. I couldn't live without my IDL compiler. Or generators that write the grungy database access code or generators that make it easy for me to make SOAP calls. Even the ghastly #import COM wrapper generator has its place. But I'm sorry, I just don't buy this "In the future, there will be robots!" view of code generation. People will be writing code for a long time to come.
[Len Holgate]
I'm not sure what Frans has against this post. I agree with everything Len is saying. People who think that writing code will go away are crazy. I also think that generating entire applications is rediculous and will never happen. What will happen is that things will continue to be abstracted to higher and higher levels, but at the same time requirements will become more and more complex. So there will always be programmers out there writing code in one form or another. It is our jobs as programmers to stay ahead of the curve which will allow us to be more efficient than others. Currently, that involves making use of code generation tools to abstract things to the next level and enhance our productivity while most others still don't understand these tools. -
Proper Website Design
I saw this great tutorial for building a killer website. Check it out.
[Robert McLaws]
OMG! That is the funniest thing I've seen since Superfly! -
view
I just attended a session presented by Scott Woodgate about Biztalk Server 2004, and I can tell you that it ab-so-lu-te-ly rocks!
[Christophe Lauer]
We recently had Microsoft come into our office and do a BizTalk 2004 demonstation and I can't agree more with Christophe!! -
view
Andres Aguiar: "ASP.NET is a code generator". I guess.
[Marcie Robillard]
In my opinion, ASP.NET is absolutely a code generator. We could be forced to write an IHttpHandler with thousands of Response.Write statements to output our HTML for every page we want to create, but someone decided that there is a more efficient way to write this code and created a level of abstraction to do it (ASP.NET). ASP.NET is not a language that the .NET runtime understands. It is a template-based code generation syntax that generates code .NET does understand (C#/VB.NET/JScript/etc). I believe that ASP.NET style syntax happens to be a perfect fit for template-based code generation and that's why I mimic it as closely as possible in CodeSmith. To me, code generation is all about solving problems from a higher level of abstraction. Code generation is given a bad name by magic button applications that generate a bunch of code or even an entire application that the user has no control over. I personally can't stand this type of code generation. They tend to produce code that people treat as a black box and, more importantly, they take away the creative part of being a programmer. CodeSmith rewards a developer for being creative by saving them from writing the same repetative code over and over and over. You might say that refactoring will do the same thing, but I believe that template-based code generation compliments refactoring. There is only so much refactoring you can do and no level of refactoring can magically write domain specific code for you. -
Code Generation in .NET 2.0
personally I would be interested in hearing some opinions on how generics will effect the role of code generation in development. Using generics will be able to define code templates using simple language constructs instead of the brain-dead duplication of code blocks that we have today. Will that make code generation less useful? Or maybe more? On one hand CG will no longer be needed for the "grunt work" of defining typed data structures and the algorithms to handle them. On the other hand, if we use CG to create templates which themselves use generics - now that could be insanely powerful.
[Andy Santo]
I think that template-based code generation and generics are VERY similar. Personally, I can't wait for generics so that I can use them in my CodeSmith templates. Right now I have to have templates that create a separate typed collection class for each entity class that I generate. Generics are going to be awesome for classes that only vary by type, but what happens when I want to go beyond that? CodeSmith templates are based on things like database schema information (soon they will be based on an O/R mapping XML file), strings, boolean flags, and whatever else I can think of. Unlike generics, my templates can also have complex logic in them.
Speaking of generics, the thing I am looking forward to most in .NET 2.0 is partial classes. I believe partial classes are going to be a godsend to code generation. Currently I have to make sure that my entity classes have enough hooks in them so that I can derive from them and add any custom logic that might be needed, with partial classes I will simply be able to generate half of the class, write the other half by hand and not worry about my custom code being overwritten. Is it time for PDC yet? -
CodeSmith 2.1.1270 Released!
-
Martin Fowler
OK, I must admit, I've never read a single Martin Fowler book. Lately with people talking about him like he is a god and quoting his book like it's the bible I figured I better start looking into who he is and deciding if I should be reading his books. A simple check of martinfowler.com worked like a charm. I also discovered that he has a blog, so you guys better get your aggregators open and subscribe! :-)
-
Almost Free Full Tech Books
I should also mention that through my work I have access to Books24x7.com, but I hardly access it. The UI is straight from 1994, and is pretty clunky to boot. I don't know if that's ElementK's (through which my work gains access) fault or Books24x7 though, so your mileage may vary.
[Phil Scott] -
Moving to CVS from VSS
Don Browing comments on using Subversion or CVS in place of VSS. Peter Provost started a lengthy discussion in the Win Tech: Off Topic list on Moving to CVS from VSS; great tips for those wanting to make the switch to CVS. As you'll see in this discussion, Brad Wilson is always a great source of information for using CVS in the context of .NET, and just CVS in general. Methinks he should aggregate all these tips/ideas into a book. I've been happily using CVS for quite a while now thanks to the productive TortoiseCVS, but based on Don's recommendation I'll be looking at Subversion as well.
-
CodeSmith Needs A Few Good Beta Testers
I am looking for some people to help me out with new CodeSmith builds. If you are interested, you will be given access to private builds of CodeSmith to test and make sure I don't release crappy code. :-) Send me an email if you are interested.
-
Macro Madness
Duncan Mackenzie (who I just met last night) has posted his latest Coding4Fun article called Macro Madness. This is a good article on writing macros in VS.NET, but it became a great article when I noticed the CodeSmith plug at the bottom! Very nice Duncan!
-
VS.NET Deployment Project Help
CodeSmith has dependancies on EnvDTE, Extensibility, and Office. These files should be installed in the users GAC already since I do a check to make sure that VS.NET 2003 is installed (this seems to work). The problem is that I'm running into people that have VS.NET installed but don't have these files in their GAC. I don't believe it's a good practice to include these files in the installation, but how else am I supposed to ensure that my installer works correctly? Does anyone have any experience with this? Your help is appreciated.
-
TechEd Bloggers Get Together at Hard Rock Cafe
Anyone attending TechEd or living in the Dallas/Fort Worth Area, we (Cory Smith, Duncan Mackenzie, and I so far) are going to have a get together at the Dallas Hard Rock Cafe this Tuesday (6/3/2003) at 7pm. I would love to meet some of the people in the weblogs.asp.net community, some of the softies or just people that want to talk about CodeSmith. If you are interested, send me an email or just show up.
-
TechEd 2003
All you guys talking about TechEd 2003 are really bumming me out. I live in Dallas, but I still didn't get a chance to go. It sounds like there are quite a few of my fellow bloggers attending. It would be neat to meet some of you. I wonder if anyone would be interested in setting up a weblogs.asp.net get together?
-
CodeSmith 2.0.1245 Released
-
How do you use CodeSmith w/o the custom tool?
Christopher asks this question:
-
More votes for CodeSmith
I'd like to second this - CodeSmith is shaping up to be a huge timesaver in the group I work in. The code templates are pretty intuitive once you realize that they're basically just like inline ASPX code, so if you've hacked inline ASP for years you'll be right at home....This is an amazing product. It paid back our time investment quickly, and with huge dividends.First of all, thanks for the glowing review!I'm not sure if you know this or not, but CodeSmith does not constrain you to inline code. You can do one of two things:1. Include a Src attribute in your CodeTemplate directive. When this attribute is specified, just like in ASP.NET, it will dynamically compile the source file into the same assembly as the template code. You will also need to specify the Inherits attribute to have your template derive from a class in the source file.2. Create your base template class in Visual Studio.NET and compile it to a .dll. Then using an Assembly directive add a reference to this .dll. You may then specify an Inherits attribute in the CodeTemplate directive to inherit from a class in the assembly or just make use of any other class in the assembly within your template code. You can also use an Imports directive to avoid having to type fully qualified type names.Basically, CodeSmith tries to resemble ASP.NET as much as possible. And, with the glaring exception of the equivalent of server controls and data binding, it does a pretty good job of this. -
I want to play on Saturn!
In case you missed it, Nikhil has posted a screenshot of the new Web Matrix. Looks pretty cool, but I'm wondering about the theming comment. Now, is web matrix simply taking advantage of the built in windows theme, or are they doing something magical to give their app a new theme.
-
CodeSmith 2.0.1222 Released!
-
CodeSmith Legal Update
RedRiver and I have agreed to terms and now I just need to go get my signature notarized on the contract. I believe that we could see a new CodeSmith release by this weekend.
-
Typed DataSet's vs. Custom Collections
I have been reading the blog entries (here, here) lately about Typed DataSets and it makes me wonder if anyone has really sat down and compared the performance of a custom object/collection (using a data reader to populate) to a Typed DataSet? Performance was critical to us so we decided to go the custom collection route and we were very happy with the results, but we never actually sat down and figured out what the performance difference was. We assumed that considering all the bells and whistles that are associated with DataSets that custom collections would be a major performance win. And since we were using CodeSmith to generate those custom collections, it wasn't any more work to use them. Does anyone know of any benchmarks that I could look at?
-
CodeSmith Takes Over For CollectionGen
http://www.sellsbrothers.com/As of today, the functionality of CollectionGen has been sucked into Eric Smith's CodeSmith. I asked Eric to take on these features because CodeSmith does all of what CollectionGen does and more. All new feature requests/bug reports should go his way. Of course, feel free to continue to use CollectionGen as a model for VS.NET Custom Tools.
Posted by Chris Sells on Mon, May 5, 2003 @ 10:31AM -
Next CodeSmith Release Ready
Here is a list of the changes for the next version of CodeSmith. It is ready to release now, but I am not legally able to release a new version until ownership has been transferred to me from RedRiver Systems. So far I have $100 of ~$300 (this is the revised estimate after speaking in detail with several lawyers) needed for lawyer fees to make the transfer happen.
- Removed expiration.
- Added CodeSmithConsole.exe to enable processing a .xml property file from the command line. (CSharpCodeGeneratorSample and VBCodeGeneratorSample folders)
- Created installer.
- Added a Visual Basic Code Generator Sample (VBCodeGeneratorSample).
- Added a designer for the DatabaseSchema object.
- Added Owner property to TableSchema, ViewSchema, and CommandSchema and fixed bug relating to tables, stored procedures and views were assuming dbo as an owner.
- Fixed problem where SchemaExplorer would fail if collation was different from the master database.
- Added view support to SchemaExplorer.
- Fixed problem with SQL7 compatibility and column descriptions.
- Updated CollectionGen templates from the latest CollectionGen release.
- Changed to a build system instead of going on and on forever with beta builds.
- Dropped support for Visual Studio .NET 2002. The Visual Studio features will only work with the final release of Visual Studio .NET 2003.
- Dropped RedRiver from all namespaces. If you have templates that refer to RedRiver, you will need to update them.
-
Inside the new ValidateRequest feature
Great, but my point is still valid, this break the rules.
Because I think about production environment. Because I talk about sites went live since few months, and suddenly a new rule come without any publicity, and change the rules, creating errors.
This is what I call a very bad mistake to implement a new rule which break your code.
I would prefer to have this feature having a false value by default, and some strong recomendations by .Net team to turn it on rather than now having to check every single page. -
Code Generation Network
Many people have pointed out the existance of the Code Generation Network. This looks like a very nice site and has a big list of code generation tools. While browsing through it, I found a link to this interview of Dave Thomas. I agree with a lot of what he has to say. Until recently, CodeSmith has been a "smelly" code generation tool since it didn't have a lot of support for active generation, but with the recent addition of the VS.NET code generator it can now be used as an active generator. I also have plans to add command line support and, thanks to a great suggestion by Duncan Godwin, I have also added a Nant build task to my TODO list. As soon as I can get CodeSmith legally transfered to me, I will be able to start working on these ideas. I truely believe that CodeSmith has the best template based code generation engine out of everything I have looked at and if I get to work adding more active generation support it will truely be a very powerful tool.
-
CodeSmith
I have started to look at using codesmith for a project I am working on and so far I am very impressed with the tool. (Eric , the code smith himself, is looking for some legal aid if you are so qualified/inclined.) There are a couple of things that I am trying to figure out how to incorporate into the generation process, and as far as I can tell they are not there yet.
-
CodeSmith and a MMC Snapin
Eric J. Smith is looking for some help to make sure that the CodeSmith code generator remains legally available. I'd pony up the whole amount if I was still working for a fat dot-com. As it is, I'll be happy to chip in if someone gets a legal fund going here. Better still would be some pro-bono legal work, if anyone out there is qualified.
-
HELP WANTED!
** ATTENTION: CodeSmith is in need of some legal assistance. I no longer work for RedRiver Systems, but they are willing to transfer ownership of CodeSmith and the SchemaExplorer API to me on the condition that they recieve an unconditional, non-revocable license to the software including free updates forever in the event that I decide to make CodeSmith a commercial product (I have no plans to do this, but they have to cover themselves). This should remain in affect in the event that I decide to sell my rights to a 3rd party. It should also state that they will be released from any and all liability associated with the use of CodeSmith once it is transferred to me or subsequently to anyone else. I need for someone with a legal background to write a contract to this affect or for enough people to make donations (think it will cost about $200) so that I can afford to pay a lawyer to do this for me. Once this is complete, I will be releasing a non-expiring build of CodeSmith with support for Visual Studio .NET 2003 final and I am also very strongly considering moving the project to SourceForge under an open-source license immediately after this transfer is complete. If you can help, please email me at ejsmith@mail.com. Thanks!
-
Olymars
Lots of negative talk regarding OlyMars lately. I will admit that I don't have the time to figure out how to use it (gave it a try a few times, but just wasn't my style). However, it is still a very cool tool, it just has a crappy interface on top of it, but it isn't meant to be production code anyway now is it? My understanding is that it is just a research project...and when is the last time you saw a research project with warm fuzzy documentation and a sexy UI?
-
OlyMars == Confusion
Let me put it this way. If the instructions for using a condom were as complicated as the ones for using OlyMars, AIDS would have killed us all by now.
-
I NEED A JOB!
As of yesterday (4/7/2003), I am without a job. If any of you know of any opportunities in the Dallas/Fort Worth areas, please send me an email at ejsmith@mail.com. My current resume can be viewed at http://www.ericjsmith.net/resume.htm.
-
Free NUnitAddin Shares!
For a (hopefully) limited time only, shares in NUnitAddin are selling for $0.00! I probably shouldn't be telling you this, but if you want some free stock you can pick it up here. You never know, one day it might be worth something.
-
Windows Server 2003 Available on MSDN
Windows Server 2003 is now available on MSDN Subscriber Downloads.
-
Windows Server 2003 RTM
Microsoft just announced that Windows Server 2003 has finally been RTM'd. Let's hope that VS.NET 2003 follows shortly.
-
CodeSmith Beta 6 Released (w/VS.NET 2003 Support)
Beta 6 has been posted. Here are the changes in this build:
* Fixed bug where CodeSmith Explorer context menu was shown for node types other than templates.
* Added ability to specify the application used to edit templates. Can be changed in the "RedRiver.CodeSmith.Gui.dll.config" (key "codetemplateexplorercontrol.editapplication") file.
* Fixed various bugs in SqlCodeTemplate.cs.
* Changed expiration to 7/1/2003.
* Seperated the VS.NET addin and custom tool into seperate assemblies. This should allow the custom tool to run in VS.NET 2002 and 2003.
* Changed ColumnSchema.DataType and ParameterSchema.DataType to DbType instead of SqlDbType.
* Fix bug with ColumnSchema.IsPrimaryKeyMember when no primary key exists.
This build doesn't have a lot of big changes because we are currently very busy at work. It is mostly to change the expiration date and also provide a build that works with VS.NET 2003 -
NUnitAddin
I finally took the time to check out NUnitAddin today and I must say that I am extremely impressed. I am not going to bother to go into details about what the program actually does since so many others have already done this. Instead I would like to say how impressed I was when I downloaded the source from Sourceforge. This is an incredible piece of work and I have not learned more about .NET since back in the .NET Beta 2 IBuySpy days. I would highly recommend you check this out especially if you are planning to do any VS.NET integration work.
-
Recommended Utilities
The focus of these blogs (.NETWeblogs) is of course on .NET. When you have a second, why not share/demo some piece of code you use often or an approach to a common problem you have solved?
-
Extensible .NET SQL code generator
One of the cool things about Microsoft is that there's a boatload of smart people in it. More to the point, many of those smart people are building wicked cool pieces of software that are available to you for free (and in many cases, with source code included!). So, here's your link to one of Microsoft's better-kept secrets (we're working on changing that): OLYMARS (the interesting name comes from a shortened version of the creator's favorite soccer/football team, Olympique de Marseilles). What is so special about this utility? Well, to put it simply, it's a SQL Server .NET code generator. And not just some cheezy tossed-together thing, this one has several superb charactaristics:
-
ASP.NET 2.0
I just saw this post in the ASP.NET forums. It says that if you were to re-build the IBuySpy Portal application in ASP.NET 2.0 that there would be 70% less code!! I can't imagine what has been done to allow this, but I am excited!
-
Sony DVD burner and Windows Movie Maker 2
Well, I just bought my first DVD burner (Sony DRU-500A) so that I can send home videos to my family in Rochester, NY. I have been working with Windows Movie Maker 2 to edit my videos and I must say that I love this program! My only complaint is that I wish it had direct support for burning DVD's when I am done editing them.
-
Wehadababyitsagirl!
My second child was born yesterday. Her name is Carson Lou Ann Smith.
-
CodeSmith: Parsing Engine
Well, it looks like my parsing engine is going to need to be re-written. A user posted a bug report saying that large templates hang CodeSmith. I checked it out today and he is right. I knew that I would need to re-write the engine at some point because I need to keep track of line numbers and I want to change the Response object to be an indented text writer. The bad news is that we are starting to get really busy at work and it will stay that way for a while so it might be a while before I get this change done. The good news is that these changes in addition to fixing this bug will allow debugging of the template code itself by providing #line directives in the generated source and the indented text writer will make it possible to keep clean code when we start getting into things like sub-templates and data-bound template controls.
-
Welcome to my weblog!
Welcome to my first weblog! I will be writing about my experiences with .NET, CodeSmith and whatever else comes to mind. Enjoy!