Wednesday, February 17, 2010
If you like C# at all then you know that Jon Skeet (writings, blog, StackOverflow) is the man when it comes to this language. Just look at his StackOverflow flair!!! He is the top dude by a long shot in C# and has been for a long time.
His latest book “C# in Depth 2nd edition” is currently available in the Manning Early Access Program (MEAP) and ready for you to get your hands on!
$15 off C# in Depth 2nd edition: use code dotd0217 at checkout. http://manning.com/skeet2/
Friday, January 15, 2010
Hey there everyone. I was recently tasked to pitch a book to my publisher. As a first step I need to come up with an outline for the Table of Contents. This book is the standard cookbook style with an added focus on the MVC side of ASP.NET. I have been poking about at other similarly styled books to get some ideas. I think comparing ASP.NET Web Forms to ASP.NET MVC would provide some folks with a good reference point when looking at the two ways of doing things.
(Thanks to my friend James Shaw for this idea…made my life easier)
Below is what I have some up with so far. Can you please take a quick look to make sure I haven’t missed anything? Perhaps more important than missing a topic…am I including too much? Feel free to contact me directly with any comments at asiemer@hotmail.com or leave a comment below.
Thanks!
1. Working with the View
1. Discovering the problems of a non-strongly typed view
2. Creating a strongly typed view
3. Working with a ViewModel
4. How to use strongly typed input builders
5. Create a custom input builder
6. Consolidating view code into a partial view
7. Using the Spark view engine
8. Using the FubuMVC view engine
9. Exposing a view that returns an image
10. Creating a JSON result
11. Consuming a JSON view
12. Exposing a view that returns a PDF
2. Actions
3. Controllers
4. Routes
5. Master Pages
1. How to create a master page
2. Controlling which master page is used with a custom base page
3. Working with Spark View Engine master pages
6. Working with data in the view
1. Reintroducing for and foreach
2. Displaying data from an xml file
3. Displaying an array as a group of check boxes
4. Displaying an array as a group of radio buttons
5. Creating a page-able set of data
6. How to sort data
7. Navigating to a specific page of data
8. Deleting a record from a data set
9. Adding a javascript delete confirmation pop-up
10. Adding a modal window delete confirmation pop-up
11. Displaying a modal window to show a records details
12. Adding a totals row to the bottom of a set of data
13. Using the free telerik grid
7. Working with Forms
1. Posting a form to the appropriate action
2. Setting the field tab order
3. Setting a default button
8. MVC and templating
1. Plugging in a new skin from the template gallery
2. Using T4 to create strongly typed helpers
3. Using T4MVC to destroy magic strings
4. Creating a view template
9. Validation Recipes
1. Validating with Data Annotation Validators
2. Reporting validation errors with ViewData.ModelState
3. Using Html.ValidationMessage to display validation errors
4. Summarizing validation errors with Html.ValidationSummary
5. Using the xVal validation framework
6. Using Castle Validator for validation
7. Client side validation with JQuery Validation
8. Making a required field
9. Setting an acceptable range
10. Requiring the password and password verification fields to match
11. Using a regex pattern to validate data
12. Forcing a choice to be made in a drop down menu
10. Managing large applications with Areas
1. Creating a separate project as an area
2. Creating an area in the same project
3. Using areas to manage segments of your site
4. Creating portable areas to compartmentalize functionality
11. Maintaining state
1. Working with application wide information
2. Maintaining a user’s information during their session
3. Using cookies to remember a user
4. Managing state in a web farm scenario using SQL Server
12. Error Handling
1. Handling errors in your code
2. Handling errors for a view
3. Handling errors in your application
4. Showing friendly error information
5. Using Error Logging Modules and Handlers (ELMAH) to deal with unhandled exceptions
6. Reporting caught exceptions to ELMAH
13. Security
1. Using membership and roles to manage users
2. Using windows authentication
3. Restricting access to all pages
4. Restricting access to selected pages
5. Restricting access to pages by role
6. Restricting access to a controller
7. Restricting access to a selected area
14. Profiles and Themes
1. Using profiles
2. Inheriting a profile
3. Using an migrating anonymous profiles
4. Managing user profiles
5. Using themes
6. User personalized themes
15. Configuration
1. Adding custom application settings in web.config
2. Displaying custom error messages
3. Maintaining session state across multiple web servers
4. Accessing other web.config configuration elements
5. Adding your own configuration elements to web.config
6. Encrypting web.config sections
16. Tracing and Debugging
1. Uncovering page level problems
2. Uncovering application wide problems
3. Writing trace data to the event log
4. Sending trace data via email
5. Using a breakpoint to stop execution of an application when a condition is met
17. Caching
1. Caching a whole page
2. Caching pages based on route details
3. Caching pages based on browser type and version
4. Caching pages based on developer defined custom strings
5. Caching partial pages
6. Caching application data
7. Caching object data
8. Installing MemCached Win32 as an alternate cache provider
9. Using the MemCached Enyim client to cache application data
10. Installing Microsoft Velocity
11. Using Velocity to cache application data
18. Localizing your application
1. Providing multiple language support
2. Using resource files to manage display data
3. Managing currency display based on selected language
19. HTTP Handlers and Modules
1. Tracking access to your resources with an HTTP Handler
2. Create a file download HTTP Handler
3. Control leeching of your resources with an HTTP Module
20. Making ASP.NET even more powerful
1. Making controllers testable by implementing a ControllerFactory
2. Implementing inversion of control with StructureMap
3. Install MVC Turbine and write less code
4. Creating testable views
5. Creating testable controllers
Tuesday, January 05, 2010
Hey all! I am finally going to put my full steam into setting up my VirtualDNUG users group. With the help of the good folks over at ineta (they are providing a LiveMeeting license for us) I am hoping to host a great environment for learning. I will probably start off with topics on ASP.NET MVC and the various side projects that surround that world (Turbine, Spark View Engine, FubuMVC, etc.) but I am totally open to just about any other cutting edge .net topics as well.
If you are interested in attending our initial meetings, would like to present, or have a topic that you would like to be covered, please contact me directly at asiemer@hotmail.com.
Since I enjoyed the first edition of the ASP.NET MVC in Action book I figured I would jump on this second edition of this book and framework as quickly as I could. I just read this post from Jeffrey Palermo:
http://jeffreypalermo.com/blog/mvc-2-in-action-book-conducting-public-reviews/
Which basically states that they are actively working on the next edition of the book. More importantly, the chapters that they have completed so far are in a publicly viewable location: http://github.com/jeffreypalermo/mvc2inaction
Here is a re-post of Jeffrey’s original post:
If you’d like to get an early glimpse of ASP.NET MVC 2 in Action, you can participate on the public email list athttp://groups.google.com/group/mvc2inaction-discuss. The first bit of the manuscript is ready to review, and it consists of chapter 23, Data Access with NHibernate. You can also access every bit of code, text, and image at the book’s GitHub repository. With the first book, ASP.NET MVC in Action, Manning conducted an Early Access Program (MEAP). Manning will still conduct it, but our program is a early, early access program. In other words, you can have access to the unedited, perhaps dirty, manuscript and help as it drives forward to polish and completion.
As each piece of the manuscript is complete, we will post it to this list and ask for feedback. Anyone who gives us constructive feedback on the list WILL be thanked in the acknowledgements section at the front of the book when it goes to print. Also, you will have influence in shaping this book so that it is as good as it can be.
Our hope is that this book serves the .Net community that is working ASP.NET MVC 1 and ASP.NET MVC 2 applications.
The author team consists of:
If this book project interests you, and if you know people who should be involved, please blog, tweet, and otherwise post a link to this announcement.
Saturday, November 14, 2009
http://dotnetradio.com/archive/2009/11/13/podcast-2.aspx
Andrew sites down with Atif Aziz. Atif Aziz is a senior IT business analyst at Cargill International and an ex-Microsoftie. His primary focus is helping customers move to the .NET Framework. He speaks regularly at Microsoft conferences and can be reached through his website. You can find out more about Atif Aziz by visiting his web site www.raboof.com.
- Raboof.com = FooBar!!
- Atif describes to us what ELMAH is and the history behind it. He then goes into detail as to how to get ELMAH installed and running. Atif then outlines the types of storage that are supported and how to implement a custom storage provider. Next we get into how ELMAH handles exceptions, how it works with the .NET runtime, and what the appropriate way to handle exceptions with ELMAH is. He then gets into the details of how to signal ELMAH about exceptions that occur as the filtering that ELMAH provides.
- OrbitOne ASP.NET Exception Reporting (based on ELMAH) – a good example of centralized exception logging and extending ELMAH
- ELMAH has earned Veracode Application Security rating and has earned OWASP top 10 and SANS-CWE top 25 placements
- What is Fizzler? A .NET based CSS selector built on top of HTML Agility Pack to parse nodes of HTML by CSS selector. Using LINQ with Fizzler. How does jQuery (client side selector) compare to Fizzler? How is Fizzler able to select out nodes, make changes, and put those changes back? Fizzler and HTML Agility Pack is very powerful when paired together for parsing and modifying HTML nodes
- How does Jayrock fit into a web developers world? Jayrock is an easy to use way for JavaScript to communicate with back end web services using JSON as the wire format and JSON-RPC as the procedure invocation protocol. Jayrock can generate the client code that is needed for you. Jayrock works with .NET 1.0!! Jayrock is considerably easier to use compared with WCF. Jayrock follows the Duct Tape Programmer mentality of simple and easy to use with rock solid stability
- BackLINQ "was a pretty bad start" ...but a good story
- LINQBridge provides LINQ capabilities to .NET 2.0 framework
- Unit testing is awesome…but not worth updating older codebases that are based on infrastructure
- MoreLINQ, by Jon Skeet, StackOverflow super star, and author of C# in Depth. MoreLINQ provides 22 additional really useful LINQ methods such as Zip(), ToDelimitedString(), TakeLast(), etc.
- Open Source works when everyone contributes little bits, be it code, documentation, writing blog posts and articles, etc.
Send me your questions and comments!
If you would like to submit a question to be answered in the next show, please record an audio file and email it to podcast@dotnetradio.com. All you need is a telephone! Call (646) 200-0000, talk, then navigate to http://cinch.blogtalkradio.com/YOURPHONENUMBER to retrieve your recording. Then send it my way.
Sunday, November 08, 2009
I just got through interviewing Atif Aziz (@raboof on twitter – foobar spelled backwards!) probably most known (at least to me) for his ELMAH (Error Logging Modules and Handlers) contribution. We discussed ELMAH, ELMAH’s Veracode Application Security Rating which made OWASP top 10 in 2007 and SANS-CWE top 25, Fizzler, Jayrock, BackLINQ, LINQBridge, and MoreLINQ. Atif is a very smart guy and you can truly hear his passion for sharing with the development community when speaking with him. This was a great interview that I think any .net developer could learn a thing or two from. Look for this interview in the near future on the DotNetRadio podcast.
Subscribe to the podcast feed here: http://feeds.feedburner.com/Dotnetradio
And follow the show on twitter here: http://twitter.com/dnetradio
Saturday, November 07, 2009
Hey all. I wanted to let you know who was slated for the next interview - Javier Lozano.
Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the Iowa .NET Users Group.
On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for Code Project.
In his spare time, Javier enjoys spending time with his wife, newborn son , two golden retrievers and writing about himself in the third person.
It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.
Got Questions for Javier?
If you have any questions about ASP.NET MVC, Turbine, or anything else you think appropriate for Javier feel free to send them my way at podcast@dotnetradio.com. The interview will be tonight at 8pm (PST). Feel free to send your questions in real time via twitter to @DNetRadio.
Hey all. I wanted to let you know who was slated for the next interview - Javier Lozano.
Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the Iowa .NET Users Group.
On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for Code Project.
In his spare time, Javier enjoys spending time with his wife, newborn son , two golden retrievers and writing about himself in the third person.
It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.
Got Questions for Javier?
If you have any questions about ASP.NET MVC, Turbine, or anything else you think appropriate for Javier feel free to send them my way at podcast@dotnetradio.com. The interview will be tonight at 8pm (PST). Feel free to send your questions in real time via twitter to @DNetRadio.
Hey all. I wanted to let you know who was slated for the next interview - Javier Lozano.
Javier is a .NET consultant in Des Moines, Iowa. He's an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the Iowa .NET Users Group.
On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for Code Project.
In his spare time, Javier enjoys spending time with his wife, newborn son , two golden retrievers and writing about himself in the third person.
It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.
Got Questions for Javier?
If you have any questions about ASP.NET MVC, Turbine, or anything else you think appropriate for Javier feel free to send them my way at podcast@dotnetradio.com. The interview will be tonight at 8pm (PST). Feel free to send your questions in real time via twitter to @DNetRadio.
Thursday, November 05, 2009
I recently sat down with Ben Scheirman (co-author of ASP.NET MVC in Action) for my first interview on my new show DotNetRadio. It was quite a talk! We covered the following points:
- An introduction to Ben Scheirman and how he got into web development
- Bens path through various web technologies such as ColdFusion, PHP, Ruby, and ASP.NET
- A brief discussion on code testability
- Working with ASP.NET web forms using the model view presenter pattern
- How ASP.NET MVC simplifies the testing process
- Ben informs us of how you can sell test driven development to a client…or sneak it in
- Regression testing
- We run through the process of refactoring and how you really should trustReSharper
- We briefly touch upon the concept of Continuous Integration
- Ben discusses a new way of testing using MSpec to create documentation out of your unit tests
- This leads us into behavior driven development and context specification
- Next we discuss how twitter can be used as a developer tool
- Ben describes to us how he got involved with co-authoring ASP.NET MVC in Action and the process involved with writing a book based on “preview” code.
Check it out at http://dotnetradio.com/. You can follow the show on Twitter at DNetRadio.
As this is a new show the format is not entirely worked out just yet! I am still trying to work out the music, the format, guest lineup, advertisers, etc. Also, since I am a coder by day and a coder/writer at night – pro-audio is a totally foreign concept to me. I am all ears if after listening to the show or visiting the site you come up with a WTF moment or just some good general advice. Shoot it my way!
Sunday, October 18, 2009
This morning I had the chance to speak with Ben Scheirman. We chatted for roughly an hour or so discussing how he entered into the web development industry, going on the road to teach ASP.NET MVC in its early days, his book ASP.NET MVC in Action, and his thoughts on the use of the MVC framework. We discussed some patterns and tools for testing, tools for development in general such as ReSharper, and the use of the Spark View Engine. Watch for this podcast to be posted within the next couple of days.
Being the first podcast for DotNetRadio and the first podcast I have ever done I am hoping that my listeners will share any ideas to improve the show. I am all ears! Feel free to share your feedback with me at podcast@dotnetradio.com.
Tell your friends about DotNetRadio! You can also follow us at twitter.com/DNetRadio.
Monday, October 12, 2009
I decided to start a podcast. I am going to host it under the name of DotNetRadio…sounded appropriate! I am in the early stages of getting things set up which means that there is still some flexibility in how things are done. I was wondering if anyone out there is willing to share some input regarding the creation of a podcast, how they might like to see the show format take shape, who they would be interested in hearing an interview of, etc.
I initially did a test recording using a standard analog mic. Totally sucked! So I upgraded to a better quality USB mic. This certainly made things sound better but it still sounded like I was talking through a can. Tomorrow I should be receiving the Behringer podcaststudio. I am hoping that this will be an exceptional upgrade (though still not pro-audio). This package comes with a good mic, head set, mixer, usb interface, etc. I also got a pop filter that clips on to the mic (everyone said it is a must). We will see how it goes.
Take a look at DotNetRadio.com. Let me know what you think and more importantly if you have any suggestions send that my way too!
Friday, September 18, 2009
The ASP.NET MVC framework was just released as a preview when I started to write my first book (ASP.NET 3.5 Social Networking). In the early days of design decisions for my book I was faced with the problem of building with the MVP pattern or the new MVC pattern/framework. At that time there was next to nothing regarding the use of the ASP.NET MVC framework (proper or improper).
Shortly after I got started with my project (which I chose to do in MVP) I was asked to do a review for the ASP.NET MVC in Action book. I gladly accepted and started to read as Jeffrey Palermo, Ben Scheirman, and Jimmy Bogard explored the world of ASP.NET MVC offerings. I thought that they did a very good job of describing how Microsoft meant you to use the new framework and a better job of describing how to break beyond the limitations of the current offerings. They go above and beyond to describe best practices early on.

I must say that this is one of the few books that I have ever read cover to cover so many times! With each review of the book I went through each chapter to find any updates. As this book was being written several new CTP’s of the ASP.NET MVC framework were released. With each of the CTP releases came a new rendering of the book. It was quite fun to see how quickly things changed over the year that this book was written.
Finally having the final review in my hands and being so very familiar with it’s content, I have to say that of all the books on the ASP.NET MVC framework the ASP.NET MVC in Action book should be at the top of your list for things to purchase in the upcoming months. At a quick glance this book covers all things relating to ASP.NET MVC and then some. This book is not just a regurgitation of MSDN or other resource as so many books are these days. Here are the chapter titles for this book:
- Getting started with the ASP.NET MVC Framework
- The Model in depth
- The Controller in depth
- Views in depth
- Routing
- Customizing and extending the ASP.NET MVC Framework
- Scaling the architecture to more complex sites
- Leveraging existing ASP.NET features
- AJAX in ASP.NET MVC (which includes coverage of jQuery!)
- Hosting and Deployment
- Exploring MonoRail and Ruby on Rails
- Best Practices
- Recipes
As you can clearly see from the above this is more than just the XYZ of ASP.NET MVC. I highly recommend this book for anyone interested in breaking away from the pains of ASP.NET WebForms. This framework, especially with the help of this new book, makes programming for the web fun again!
Andrew Siemer Teacher, Author, Engineer, Architect, Build Master, Scrum Master, Father of 6, Husband, ex Army Ranger
My Book Links
Thursday, September 17, 2009
Hey all! I was just informed that Typemock is providing a free webinar covering the following items:
- Creating Supporting environment
- Unit testing tools of the trade
- Practices and Pitfalls
- Writing the first test
- Live Q & A
You can see more details here: http://blog.typemock.com/2009/09/unit-testing-net-successfully-live-free.html
Should be very informative. (virtually…) see you there!
Monday, August 10, 2009
The first article in my “building a stackoverflow inspired knowledge exchange” on DotNetSlackers.com is finally out. This article is an introduction to the series and explains the various technologies and processes we will use in our project. It also takes a look at some of the information that is currently on the net regarding the very famous StackOverflow.com site. More to come very soon. Keep an eye on the series index here.
Friday, July 31, 2009
Friday, July 24, 2009
I am very happy to say that I have published my first article on DotNetSlackers.com! While the publication of my book was the first time I considered myself a writer (not just another blogger), writing for DotNetSlackers.com some how feels more important to me. I hope you enjoy my future efforts!
This article is actually the first of a three part series. I came up with the idea for this series as I was answering a question on StackOverflow regarding the creation of a dynamic email drop box style feature. A feature of this nature would allow a site to have their users send content to them or interact with them via a standard pop3 server (via email). Think of things like the email that craigslist.com gives to you asdfasd-somePost-234@craigslist.com when you post something into their system. This email doesn’t physically exist but it still somehow identifies your post on their system and allows external users to communicate with you and the system. The creation of a feature like this (including all the infrastructure aspects) is what the article series discusses and implements.
I hope you find a use for it on one of your projects!
Andrew Siemer
Teacher, Author, Engineer, Architect, Build Master, Scrum Master, Father of 6, Husband, ex Army Ranger
My Book
ASP.NET 3.5 Social Networking:
An Expert Guide to Building
Enterprise-ready Social Networking
and Community Applications
with ASP.NET 3.5
Links
Blog.AndrewSiemer.com
AndrewSiemer.com
StackOverflow.com
PictFresh.com
Linked In
My Space
Face Book
Twitter
AndrewSiemer.GymEd.com
GymEd.com
Tuesday, May 19, 2009
I was recently given a copy of the latest version of NDepend Professional so that I could review it. I have to say that this tool is worth it’s weight in gold. I used one of the earlier versions of this product and loved it then too…but this version is way better! The tool was easy to install and get running. And in a matter of minutes I had a report generated on the code base for my book. I honestly wish I had this tool integrated into my build process from day one as I would have seen some bottle necks that I will now go back in and fix! Here are some quick metrics for those interested:
Application Metrics
Number of IL instructions: 61021
Number of lines of code: 6878
Number of lines of comment: 3764
Percentage comment: 35
Number of assemblies: 2
Number of classes: 388
Number of types: 512
Number of abstract classes: 0
Number of interfaces: 107
Number of value types: 2
Number of exception classes: 0
Number of attribute classes: 0
Number of delegate classes: 0
Number of enumerations classes: 15
Number of generic type definitions: 20
Number of generic method definitions: 10
Percentage of public types: 73.05%
Percentage of public methods: 85.6%
Percentage of classes with at least one public field: 0.2%
I have always loved this image. It is nice in that it shows how much code in the code base is dedicated to a given area. It also shows at a quick glance where things are located in relationship to one another.
![VisualNDependView[6] VisualNDependView[6]](http://blog.socialnetworkingin.net/images/blog_socialnetworkingin_net/WindowsLiveWriter/NDependReportforFisharoocodebase_AB79/VisualNDependView%5B6%5D_thumb.png)
In this next image it looks like the code is almost entirely in the green zone. Not sure how this is determined…but I am guessing that green is good?
![AbstractnessVSInstability[6] AbstractnessVSInstability[6]](http://blog.socialnetworkingin.net/images/blog_socialnetworkingin_net/WindowsLiveWriter/NDependReportforFisharoocodebase_AB79/AbstractnessVSInstability%5B6%5D_thumb.png)
here I think I would prefer that the web side of things entirely go through the core but that is not entirely possible. The only thing here that really bugs me is the reference to System.Data.Linq. I will need to go in and see if this is actually used…or just referenced. I can’t imagine that the web is directly accessing data!
![ComponentDependenciesDiagram[6] ComponentDependenciesDiagram[6]](http://blog.socialnetworkingin.net/images/blog_socialnetworkingin_net/WindowsLiveWriter/NDependReportforFisharoocodebase_AB79/ComponentDependenciesDiagram%5B6%5D_thumb.png)
I generated a report with all of the other stats in it and saved it to a PDF here: http://blog.socialnetworkingin.net/NDepend%20Report%20-%20Fisharoo.pdf Some of this won’t look as good as what you would get from the NDepend tool…but you will get the idea of how much information they provide. Now I have to go and clean up some of my code so that I feel better! <GRIN>
Monday, May 11, 2009
I finally posted the code from my book ASP.NET 3.5 Social Networking on CodePlex at http://community.codeplex.com/. Several people have asked for this so that we can make changes to the code and improve/expand the code base. I think I may also take the time to convert it from the MVP pattern to the latest ASP.NET MVC pattern/template as well as add test coverage the project. I also set up a forum for this at forum.socialnetworkingin.net and a separate blog at blog.socialnetworkinging.net.
Thursday, May 07, 2009
If you followed any of the banter regarding the SOLID principles between “uncle” Bob Martin and Joel Spolsky you may have also already seen the SOLID development principles in motivational pictures. If not follow through all the links listed here. The last one has the pictures.
Simple podcast outlining the SOLID principles: http://www.hanselminutes.com/default.aspx?showID=163
Jeff Atwood, Joel Spolsky, and “uncle” Bob Martin discuss SOLID: http://itc.conversationsnetwork.org/shows/detail4012.html
Hanselman’s follow on interview with “uncle” Bob Martin: http://www.hanselminutes.com/default.aspx?showID=168
The best thing that came from all of this is the following pictures from LosTechies:
http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principles-in-motivational-pictures.aspx
Wednesday, April 22, 2009
Anyone that is working frequently with either LINQ to SQL or the Entity Framework needs to go get a copy of the Huagati DBML/EDMX tools. They plug right into Visual Studio (2008) and allow you to perform many of the tasks that you would think VS would do for you. I just recently had a new dev db get corrupted. I had no backups for it. I also had no scripts generated for it. Argh! What to do? With this tool I was able to reverse engineer my EDMX file and spit out all the SQL I needed to generate the database. There are many other features provided with this tool that I am sure you will love too.
This tool is offered in a free 30 day trial. Then there are a few paid versions. I think that the professional version is worth the $120 price tag but there is a $50 version and a $12/mo subscription option. Very good stuff! Go grab a copy.
Thursday, April 16, 2009
Friday, April 03, 2009
The developer of StructureMap (Jeremey Miller) posted a great article (to defend the product) regarding the use of StructureMap outside of the ObjectFactory:
http://codebetter.com/blogs/jeremy.miller/archive/2008/09/10/using-the-structuremap-container-independently-of-objectfactory.aspx
I have been working on a project for the past year or so. This project was originally decided to be implemented in a BizTalk environment. Although most of us were new to this form of SOA development we went ahead with the understanding that we would eventually learn enough to stand up, manage, and develop for BizTalk. With this in mind we developed our entire application in such a way that we thought the app would simply plug in to the BizTalk environment (from an orchestration point of view any ways).
Some of the reasons that we decided to go with BizTalk was that it was very scalable, configurable, flexible, and that it had many components that we could easily use in our application. Some of these components were the Business Rules Engine (BRE), various reporting tools (BAM), built in queue integration, etc. We liked the idea of using already built and tested components. Why recreate the wheel after all? After we played with BizTalk for quite some time, took several classes, and spent many months with our BizTalk consultants, we eventually heard one statement that summed up BizTalk in every way:
“BizTalk can do anything you want it too, it just can’t do anything out of the box!”
Whaaaaa?
Any ways…again…a year later I am still working on an application that needs some of these BizTalk style components. One of which we have found is needed more and more. We needed an external program to manage the flow of our application. One might immediately jump to Windows Workflow Foundation and the Rules Engine that comes with WWF. However, one of the marching orders of this application is that the business users can make changes to the logic of the application in such a way that it doesn’t require a code push and is not restricted by the length of a development cycle. We had looked into several rules engines along the way to see if any were capable of addressing this need. All of the rules engines that we came across were Java based and forced you to integrate with them via web services. Yuck.
We eventually came across ILOG Rules for .NET. This is a program (now owned by IBM and a Microsoft Gold partner) that integrates into a .NET developers world in a very seamless manner. It plugs right into Visual Studio allowing the developer to define flows, express facts to rule editors, verbalize those facts in a more business friendly manner, and call into the execution server to run the rules all without any headache at all.
In addition to that the rules, decision tables, and flows can be edited externally in Microsoft Word or Excel.
And for those in a real Microsoft shop you probably have a SharePoint installation to manage all of your documents. SharePoint is also fully integrated into this suite for rule doc management, workflow management, etc. (sorry, no screen shot of this yet)
The best part of this application in my mind is that ILOG gives you a 6 month free trial of the fully functional suite! This means that you can easily knock together a proof of concept before you purchase their (very reasonably priced) program. http://www.ilog.com/dev/brms/rfdntrial/ And another benefit to their free trial is that they provide you will full access to their support forum. I had a few issues during my POC development that I got pretty quick help with through this online help format!
In future posts I will show my proof of concept and address some of the gotchas that I ran into.
I am going to assume that you can get through their registration and free trial download process. I am also going to assume that you can get all of their programs installed and running (they cover that pretty well).
One word to the wise – do be sure to install the execution server first so that you don’t have to mess with any configuration files down the road! This should be pretty easy as it is the first installer you come across.
Also, be sure to read through their various documents and white papers (with the QuickStart being the most helpful!):
I was scooting about the net the other day and landed on someone’s site that had the most fascinating tag cloud I have seen so far. The tags in this cloud revolve as though they are in a 3d sphere. When you mouse over the sphere you can move the words up down and around. Very interesting. This is a flash based control that you can feed with an XML file. Also, the source for it is readily available which makes it a tool that can be ported to just about any tab based platform. Very nice! See the home page for this widget here or get the developer (source) version here.
