0 Comments

BlogEngine.NET Core Version 1.5.1.31 is running on this server as of this Post.

ref: (Waiting for a Minor Release of BlogEngine.NET with MultiBlog)

 

I based my implementation on SqlBlogProvider, but since it was out of synch with BlogEngine.NET I had a dilemma.  My biggest complaint about BlogEngine.NET if I had any at all was the fact that sometimes changes come at a snails pace.  This is not to say that you can’t find a new build there every other day, but that the major enhancements I want don’t always take, or in the case of MultiBlogs, the most popular enhancement to date, is completely ignored.  Once Jacob Proffitt created a solution, I figured it would be rolled into BlogEngine.NET.

OK, so I was Way off on this one. So here’s a strategy:

  • Get the latest BlogEngine.NET code and use it as a baseline. (1.5.1.31)
  • Get the latest SqlBlogProvider code and ditto. (27978)
  • Make sure to upgrade Everything to .NET 3.5
  • Modify the SQL Database Schema to include Blog and Host tables, and BlogDataStoreSettings
  • and add BlogId columns where necessary.
  • Recreate the DBML for the new schema.
  • remove references to multiblog="true" because they don’t matter anymore.
  • Simplify and verify.

OK, done!!!  Now what?

I have a set of Blogs running an older version of everything and now I have a new schema.  Also, I have new capabilities and only a SQL script to modify or add new blogs.  It is simple but always required modifications before running.

  • Windows Form, new simple DBML for required tables…because the Provider model is too complex,
  • and Done.

Oh, and I needed a migration tool and some more fun with Linq to SQL, so I created a one-off migration tool with a useless UI that could be done from a command line, but I thought I might need more.

And, it’s running now!!!

 

BlogEngine.NET code is now at version 1.5.1.39 (change set 31351)

 

Now I have to isolate changes, bug fixes, enhancements I want and implement…but this is the exact scenario I want to avoid.

  • Do I create a Branch that uses most of BlogEngine.NET?
  • Should I start over?

I think the best option is to start a new core based on current or future technology and leave behind what can be upgraded.  Linq, Entity Framework, WCF, Silverlight 4, .NET 4.0 can be used much more.  MVC can become a solid base for the UI, maybe. This is not a hard nut to crack, and get’s easier with time and new technology.  The hardest part about using BlogEngine.NET today is that it takes longer to fix than to build again from scratch.

It’s time for a new architecture.  I’m glad I didn’t create one myself a few years ago when BlogEngine.NET was introduced, but I will be happy when I can safely deploy a new version based on those principles.

0 Comments

Pipedream: Multiple Blogs

I’m not sure if anyone else has noticed but the NUMBER ONE requested feature of BlogEngine.NET (That’s #1 by a landslide) is to support Multiple Blogs per installation.  I have been struggling with this concept and while searching for and designing a workaround using BlogEngine.NET and the Provider model using SQL Server only, I came across SqlBlogProvider that also uses Linq to SQL.  This model supports Multiple Blogs in a single SQL Server Database in a single Application folder.  It now also supports multiple hosts or domains per blog if required.  So the only dilemma I’m struggling with today is where to go from here.

 

Current Conundrum:Linq2SqlBlogProvider

Now that the SqlBlogProvider supports what I need, although there are a few items I’ve extended I’m still having problems syncing between the “current” or “newest” code base(s) of BlogEngine.NET and the SqlBlogProvider.  They don’t jive, nor should they.  However, I want it all, and I want it now…Yeah, I know it sounds like a song.  The strategy I would have employed was to Add a blog table, and then the host table to support another level of hierarchy, then add a BlogId to each necessary table.  However, in order to create the least possible interference with the Core, the SqlBlogProvider author added separate tables (Junction tables) and a separate Provider project.

Status:

I’ve made the changes to the latest BlogEngine source I had from a few days ago (1.5.1.31) and SqlBlogProvider (1.5 Change Set 27978) but haven’t finished the work I wanted yet.  My plan is to finish some bug fix work across both projects which may be done as far as my issues are concerned.  Now I’m adding a GUI for setting up new Blogs (via Linq and the new provider I chipped out of SqlBlogProvider).  Then I’ll dog-food it for a while and see where it leads me.  I may learn enough from this to start fresh and rebuild the core in my own way but I’m willing to share the results if someone asks.

You’ll know it’s in use when the BlogEngine.NET version at the bottom of this blog changes from 1.5.1.22 to 1.5.1.31 or above.

0 Comments

This is what you see when attempting to rate a new post. Click on a Star to rate the post.  Notice the infinitesimally small rating that is generally added when creating a first post.  This may be something I did myself while trying to “fix” the Add a new Blog script.

image

 

These are the symptoms I could find so far, but I cannot isolate the DateTime property that is causing the Exception.

Line number (approximate:)

 image

SqlTypeException without enough detail for me to locate the offending data point.  What am I missing?

 image

For more information on this Project:  http://blogenginesqlserver.codeplex.com/.  I will update this post when a resolution is found.

0 Comments

From: TVUG President, Griff Townsend:

Sorry for the delay in getting this out: things always seem to get hectic around the time to put announcements out, and this month was no exception. With that said, I've spoken with this month's presenter (in the mirror), and he is ready to go.
Using the Entity Framework in .Net 3.5 SP1


Speaker:Griffith Townsend, MCP.NET, MCSE
When: Tuesday September 8th, 2008 - 6:30-9PM
Where:VersaTrans Solutions, Latham, NY


When developing multi-tiered applications, it’s not uncommon that to encounter code and architectural “noise” where a developer is forced to shift languages between the business logic layer and the data layer. The preference of many developers is the use of tools (typically Object Relational Mapping solutions) to abstract the database-specific aspects of the data layer into objects usable by the upper layers by object-oriented programming languages.

Microsoft’s long awaited Entity Framework (EF) is one approach to raise the level of abstraction in complex applications, separating the logical object schema from the underlying data store. EF allows developers a lot of flexibility in creating and mapping database entities, relationships, functions, and procedures into either direct class translations or custom business entities.

In this presentation, Griff Townsend introduces us to the Entity Framework as of its initial release in SP1, providing an architectural overview of EF, while also extending it into a working Data Layer. The presentation will also cover:

  • Building your first EF model
  • Using Stored Procedures and customizing business objects in the EF model
  • Extending the Framework to support more robust data access
  • LINQ to EF vs. LINQ to SQL
  • Sharing Entities between layers


Bio: Griff Townsend is a Senior Software Engineer for 6N Systems and the President of the Tech Valley .Net Users Group. In addition to over 14 years of web- and windows- development experience in Central and Upstate New York, he has also taught Software Development for Syracuse University and ITT Tech. He is a Microsoft Certified Developer in .Net, as well as a Microsoft Certified Systems Engineer. He's starting to blog these days, too.