Welcome to the CodeSmith Community!

CodeSmith Community

A description has not yet been added to this group.
  • Tom Dupont

    Error Handling and CustomErrors and MVC3, oh my!

    • 26 Comments
    So, what else is new in MVC 3? MVC 3 now has a GlobalFilterCollection that is automatically populated with a HandleErrorAttribute. This default FilterAttribute brings with it a new way of handling errors in your web applications. In short, you can now handle errors inside of the MVC pipeline. What does that mean? This gives you direct programmatic control over handling your 500 errors in the same way that ASP.NET and CustomErrors give you configurable control of handling your HTTP error codes. How...
  • Tom Dupont

    Using CodeSmith.CodeFileParser

    • 15 Comments
    The CodeFileParser In CodeSmith v5.1 we are introducing a new feature: the CodeFileParser! The Inspiration We are always wondering, how can we make CodeSmith better? We noticed that more and more cars have the 'flex fuel' logo on them these days; so we asked ourselves, "How can we learn from that? How can we make CodeSmith's fuel more flexible?" Well, CodeSmith is fueled by metadata, so how can we make metadata more flexible? ...and then it came to us: add more metadata! The...
  • Tom Dupont

    OAuth 2.0 for MVC, Two Legged Implementation

    • 14 Comments
    OAuth 1.0 was one complicated beast. The OAuth 2.0 spec greatly simplified things, but that also had the wonderful side effect of rending all of our old OAuth 1.0 code obsolete. They say that "the only thing a pioneer gets is an arrow in the back," I disagree, I say "the thing that only a pioneer gets to have is an adventure." For example, I got to help write this wonderful, cutting edge, open source, OAuth 2.0 implementation for MVC! OAuth 2.0 Overview OAuth is all about tokens...
  • Tom Dupont

    CodeSmith 2011 User Group Tour Update!

    • 8 Comments
    The Arkansas leg of the tour went really well. Hey, rest of the US: Arkansas has an amazing .NET community! I don't know what's better, their top notch developers or their gorgeous scenic byways? Either way, I am officially a huge fan of Arkansas. My thanks to everyone who came who out, and a special thanks to all the user group leaders. Update: We have added a Louisiana leg to the tour! Calling all Louisiana .NET developers, I will be visiting your city the second week of August! If you...
  • Tom Dupont

    Ext.ux.JSONP v2.0

    • 7 Comments
    The ExtJS library does include a JSONP component, but I found it to be lacking a very important piece of functionality. The Problem: No Error Handler Anyone who know's anything about JSONP is immediately going to call attention to the fact that JSONP isn't capable of supporting error handling by design. While that is true, it doesn't mean that we don't have to handle errors. One of the more well known jQuery plugins for JSONP includes a callback method for "complete" which...
  • Tom Dupont

    MVC2 Unit Testing, Populating ModelState

    • 6 Comments
    I love how testable ASP.NET MVC is, I also love MVC2's model validation. However when trying to unit test a controller method that used the ModelState, I quickly learned that the ModelState is not populated when just newing up a Controller and calling one of its public methods. As usual, I think this is best narrated by example: Example Model and Controller public class PersonModel { [Required] public string Name { get; set; } } public class PersonController : Controller { [AcceptVerbs(HttpVerbs...
  • Tom Dupont

    CodeSmith on Windows 7

    • 6 Comments
    CodeSmith on Windows 7 First and foremost: CodeSmith 5.0 is (unofficially) 100% compatible with Windows 7, 64 bit edition! I say "unofficially" because obviously I am not allowed to make such a statement with out extensive testing, certification, and or blah blah blah. ...but hey, "it works on my machine!" But seriously, we have done some internal testing here at CodeSmith Tools, and so far we have not experienced any issues with running CodeSmith Professional 5.0 on Windows 7...
  • Tom Dupont

    MVC 2 Client Side Model Validation with ExtJS

    • 6 Comments
    One of the most exciting new features in MVC 2 is "Enhanced Model Validation support across both server and client". The new enhanced support allows for client side validation to be dynamically generated into a view quickly and easily using DataAnnotations attributes on models. This means that by simply dressing up your model properties with attributes, your web pages can instantly have dynamic client side validation; all generated and maintained for you by the MVC framework! MVC 2 enhanced...
  • Tom Dupont

    MVC JSON Model Binder

    • 4 Comments
    Here it is folks, the Ultimate Ultimate Asp.Net MVC JSON Model Binder! ...yes, I said Ultimate twice. Moving complex data structures from client to server used to be difficult, but not anymore! Just add the JsonBinder attribute to your action parameters, and this Custom ModelBinder will automatically detect the type and parameter name, and deserialize your complex JSON object to the data structure of your choice. No configuration required, it works every time, it's PFM (Pure Friendly Magic)!...
  • Tom Dupont

    How to Learn ExtJS

    • 3 Comments
    Ever since CodeSmith Insight was featured on the Sencha Product Spotlight I have been getting a lot of questions about ExtJS. Specifically how to start learning it, and what tools we recommend using. Well rather than respond to these inquiries one email at a time, I thought it might be a good idea to throw up a blog post about how to learn ExtJS. I hope this helps you get started, but always feel free to contact me with any additional questions you have. Start with the Samples I think the best way...
  • Tom Dupont

    Working with MVC3's GlobalFilters and HandleErrorAttribute

    • 3 Comments
    In MVC3 a GlobalFilterCollection has been added to the Application_Start. This allows you to register filters that will be applied to all controller actions in a single location. Also, MVC3 web applications now add an instance of HandleErrorAttribute to these GlobalFilters by default. This means that errors in the MVC pipeline will now be automatically handled by these attributes and never fire the HttpApplication's OnError event. This is nice because it is another step away from the old ASP...
  • Tom Dupont

    PLINQO for NHibernate?

    • 2 Comments
    As my Uncle Ben once said, "with great insomnia comes great responsibility." Or maybe that was Spiderman, I don't remember. All I know is that I couldn't go to sleep last night, and when I came to this morning there was a proof of concept PLINQO for NHibernate architecture on my screen. I am not saying we are working on PLINQO for NHibernate . . .yet. NHibernate is a well established ORM that is backed by a great community, and frankly, they have their own way of doing things. NHibernate...
  • Tom Dupont

    CodeSmith 2011 User Group Tour

    • 2 Comments
    The CodeSmith Tools are hitting the road (and even the skies) to talk about .NET technology all around the US! Want us to speak at your local user group? Just drop me a line! We will post again each month with updates and additional details , so stay tuned! Dates Oklahoma April 4th (Monday) - Oklahoma City DNUG - PLINQO: Advanced LINQ to SQL Arkansas March 25th (Friday) - North West Arkansas TechFest 2011 - Attack of the Cloud April 11th (Monday) - Fort Smith DNUG - PLINQO: Advanced LINQ to SQL April...
  • Tom Dupont

    Two Important Questions about PLINQO EF

    • 2 Comments
    The .NET community is the best development community ever. How do I know that? Because they ask the best questions! Here are two really important questions that we have been asked concerning PLINQO for Entity Framework that I wanted to call some extra attention to: What is the advantage of using PLINQO EF instead of standard Entity Framework? In 1.0 the primary goal was to improve the regeneration story of Entity Framework, thus making it easy to update and sync data and code changes. The entities...
  • Tom Dupont

    Zen and the Art of Dependency Injection in MVC

    • 2 Comments
    Let me start off on a modest note: I am not an expert on dependency injection. I am, however, certain of the value that it provides. TDD After having engaged in the same conversation time and time again, I have become convinced that there is indeed "one simple way to get any developer to write better code." That is because every developer, Junior or Senior, C# or Java, can always engage in more Test Driven Development with Dependency Injection. These are best practices that we can all agree...
  • Tom Dupont

    Exception Driven Development and CodeSmith Insight

    • 2 Comments
    If customer facing issues are your top priority, then you are already adhere to the primary principle of Exception Driven Development. Exception Driven Development It's a pretty simple concept: Collect application data, especially regarding errors and crashes, and then focus on fixing those problems that your users are actually experiencing. Following good development practices such as Test Driven Development, Automated Deployment, and rigorous QA, help us develop more reliable software. While...
  • Tom Dupont

    Selenium 2 and WebDriver Extensions for .NET

    • 2 Comments
    If you have not had a change to play around with the Selenium 2 and WebDriver , let me assure you that it is worth checking out! We have been using WebDriver to help create unit tests for our new product, CodeSmith Insight , which is build using ASP.NET MVC2 for the back end and the ExtJS framework for our AJAX client. Despite already being infinitely better than Selenium 1, it is still under development and in need of some polish. The good news is that by simply implementing a few extension methods...
  • Tom Dupont

    5.1 Preview: Insert Class Merge Strategy

    • 2 Comments
    Coming in v5.1, the Insert Class Merge Strategy will be CodeSmith's third native Merge Strategy. The premise is simple: Insert your template output into a previously existing class in the output file. At first this may sound very similar to the Insert Region Merge Strategy, and indeed it did start out that way; however, this Merge Strategy has many additional settings and features that separate it from it's other fellow Merge Strategies, and that make it a very robust and powerful tool. I...
  • Tom Dupont

    Defining Enum Tables

    • 2 Comments
    Back in January I posted about " Defining Many To Many " tables; and now (to take a note from the Colbert Report), here is Part 2 in my infinite part series... Better Know an ORM Programmatic Definition: Defining Enum Tables! The idea here is that we want to generate Enums from database tables; so for each table we specify as an Enum table, we want create an Enum and populate it's values from the rows in that table. As always, the goal is to make this solution be as generic as possible...
  • Tom Dupont

    Video: Mailboxes in CodeSmith Insight

    • 1 Comments
    The primary goal of CodeSmith Insight is to "unite different forms of communication", and email is a crucial medium with which users communicate with us. This is why Insight is capable of both importing and sending email, and this is why Insight includes a complete email client build into it's web UI. Insight's email capabilities are all controlled by Mailboxes inside the system. To help demonstrate the configuration and use of these Mailboxes, I have created a new tutorial video...
  • Tom Dupont

    How To: Customize Unhandled Exception Reports in CodeSmith Insight

    • 1 Comments
    One of the top benefits of integrating CodeSmith Insight into your application is that it will automatically catch and report all unhandled exceptions. As quick and easy as it is to just let Insight do all the work, you may want to make customizations to these unhandled exception reports. This is very easy to do: Just register for the UnhandledExceptionReporting event in your application startup, and then you can use an event handler to programmatically customize your reports. Example protected void...
  • Tom Dupont

    Oct 12th is (Insight) Party Time!

    • 0 Comments
    We are very excited about our upcoming CodeSmith Insight Launch Party . We rented out the Addison Convention Center, ordered ten old school arcade machines, bought over $1,000 in prizes, booked flights for the entire CodeSmith Tools team is come in from around the country, and now we are counting down until party time! However, there have been some questions (and even concerns) about party which I feel need to be addressed. First: This party is NOT a time-share-condo-ploy. We are going to speak about...
  • Tom Dupont

    PLINQO @ North Houston DNUG

    • 0 Comments
    The CodeSmith Tools (Shannon and Tom) are taking their PLINQO presentation on the road! First stop: North Houston If you or any developers that you know will be in the Houston area on October 15th, you should come see us and learn more about PLINQO, the replace and enhance alternative for LINQ to SQL! North Houston Dot Net User Group Topic: PLINQO - Supercharged LINQ To SQL Speaker: Shannon Davidson & Tom DuPont Date: October 15th @ 6:30 PM Where: Lone Star College - Montgomery
  • Tom Dupont

    PLINQO @ Fort Worth DNUG

    • 0 Comments
    The CodeSmith Tools (Shannon and Tom) are continuing their PLINQO presentation tour! Second stop: Fort Worth If you or any developers that you know will be in the Forth Worth area on October 20th, you should come see us and learn more about PLINQO, the replace and enhance alternative for LINQ to SQL! Forth Worth DNUG Topic: PLINQO - Supercharged LINQ To SQL Speaker: Shannon Davidson & Tom DuPont Date: October 20th @ 6:00 PM Where: 610 W. Daggett - Fort Worth, TX 76104
  • Tom Dupont

    PLINQO Query Extension Updates

    • 0 Comments
    The Problem Unfortunately the previous query extensions, while great at querying by a particular value, did not support simple operations such as getting by a nullable value type (where you know it can be null or just a value). Example: If you want to query by a nullable column, you had to use a a lambda expression. context.Product.Where(p => !p.OwnerId.HasValue || p.OwnerId.Value == 5); Our Solution Add an overload that for each "By" extension method that accepts a params list of values...
Page 1 of 2 (40 items) 12