I don’t like writing about something that I’m “currently working on” too often. The problem with that is sometimes other things (e.g. life) get in the way of my proposed timelines. All that aside, there are times when the standard SQL web providers are overly complicated for the rest of my database schema. I think it’s great that you can use the same tables for multiple applications. It’s also great that the primary keys for most of the entities are GUIDs, since these are much harder for an unauthorized user to guess.
Sometimes it’s all just too much!
The default implementation of the ASP.NET providers are not ideal for integrating with the rest of your database schema. By that I mean, if you want to include a foreign key to a user’s ID in a table that you’ve created for your application, you’ll have to play by those default rules. Your foreign key will have to be a unique identifier (SQL Server’s GUID data type).
What if I’ve already defined my entire schema and the User ID I had in mind is an integer?
Something that I truly appreciate with ASP.NET since version 2 are providers. Being able to customize the implementation details of specific pieces of a well-defined machine is empowering. Unfortunately, for the membership, role and profile providers, your data for each will more than likely be interdependent. For example, you cannot use the default SqlMembershipProvider with a custom role provider that does not link to the aspnet_Users table or use a GUID for the User ID when associating roles to users. If you want to change the data type of the primary keys for some entities, you’ll have to write custom providers for all aspects you wish to use in your application.
It’s also not as simple as just changing the data type from a uniqueidentifier to an int. Ideally, the flexibility to configure the providers to use one of your own existing tables in the database would be more robust than hard-coding several table names into the code. What if the provider uses the correct database provider based on the supplied connection string? How about the option to use dynamic SQL or stored procedures?
These would all be very nice features for a set of ASP.NET providers. Of course, I have a real-world example. My host lets me create MySQL databases for my website. They have MySQL 5 installed, which has the ability to create stored procedures (after a bit of a wait). The only trick here is, stored procedures in MySQL 5 are actually stored in the “mysql” database. This can pose a problem for security in a shared hosting environment. Everyone’s stored procedures are in the same “bucket”! It would be great if I could configure my membership and role providers to use MySQL and build dynamic SQL instead of relying on stored procedures.
That’s the plan. I am currently writing ASP.NET providers that offer all the benefits mentioned above. When will this project be complete? Who knows with my schedule! I can tell you that I have a couple of big websites that I’m working on that will require MySQL as the backing database. They also require membership and roles support. I guess I’ll be finishing the providers in order to complete those websites. ;-)
Tags: .NET, ASP, data, development
Posted in Web Development | No comments yet; your thoughts are welcome »
Some of you know me as a friend and code poet. Some know me as the crazy guy trying to get donations for his dad to get him a Wii. Some just know me as “that guy who wrote the web page security module for ASP.NET“. Others don’t know me at all; how did you end up here by the way?
Well, I am finally setting out to write the next version of the web page security module. I have quite a list of features requested by its many users. The fact is, I’ve been wanting to write the new version for nearly 2 years now. I have an idea that will make this thing so much more usable that I’m beginning to doubt its efficiency. So, before I begin putting too much effort into it, I will be running some tests, like a responsible programmer.
I suspect the new method I have in mind will be a bit more CPU-intensive. The problem is, I have no idea how much more CPU I can expect the algorithm to use. I’ll see how my tests go, beginning tonight. If the metrics show an acceptable increase in CPU (I’ll have to decide what is acceptable), I will begin coding the new version this week.
Stay tuned.
Tags: .NET, ASP, development, Security
Posted in Security, Web Development | No comments yet; your thoughts are welcome »
My dad and I have a lot of memories involving late nights up playing games.
There was the time I got home at around 2:00 AM from working at my inventory job in college, only to find him playing Hexen with a friend of his via modem connection. He wasn’t doing too well that night, so I stepped in to take over. His opponent had just turned him into a chicken, so I ran to a spot I knew where I could pick-up flight via some wings. After I flew away from my poultry pursuer and scored several immediate kills, I typed in, “I bet you didn’t know chickens could fly, sucka”! My dad couldn’t stop laughing.
Other times we were up far too late playing the original Mario Kart. Work and class was usually a struggle the next morning, but it was always worth it. We eventually knew all the tracks of all the releases of Mario Kart that came out over the years.
Now, my dad has visited me and my wife a couple of times to play the latest Mario Kart Wii. He really likes that game, and who can blame him! It’s an awesome game for an awesome console. He has mentioned numerous times how badly he wants to get a Wii.
Unfortunately, he cannot see spending all that money for a gaming console. I really want to help him with this plight, so I came up with the idea to create a new website for just that purpose. MyDadNeedsAWii.com is now up and running, and accepting donations. Since it’s Father’s Day, my wife and I donated the first $20, in addition to the domain name and website design/programming. I hope he likes it!
Better still, I hope it raises enough money to get him a new Wii bundle! It would be truly awesome to play some Mario Kart Wii online with him whenever we could.
Happy Father’s Day, Dad; and all the other deserving dads out there!
Tags: Gaming
Posted in Gaming | 1 comment so far; continue the discussion »
I work for a community college as their webmaster/web programmer and things tend to be very disparate with regards to systems. The student information system speaks its own language and interfaces with its own data. The Active Directory trees are updated manually each semester. The website has several internal and external tools that various users can use to achieve certain goals.
When trying to communicate across these and other involved systems, it can get a bit crazy. The Web tools are my primary concern. They require authorization granularity that just is not offered via our Active Directory (AD) layout. For example, some of those tools have some users that share a similar AD group and other users that do not. In addition, not all users of an existing group should have access to a given tool. Yet specific collections of users needs access to these tools and I am responsible for granting such access.
Tags: .NET, ASP, data, development
Posted in Web Development | No comments yet; your thoughts are welcome »
LINQ is an extremely useful new language feature for the .NET Framework 3.5. It allows querying all sorts of data structures via the actual programming language (thus the Language INtegrated in LINQ). In addition, the specific variant, LINQ to SQL, includes a full O/RM (Object/Relational Mapper). Since many developers spend a ton of time mapping their relational data to objects, this included tool is a phenomenal time-saver. Of course, this is not a new concept, nor is it the first of its kind for .NET. It’s just free and included!
LINQ to SQL currently only works with SQL Server 2005. It’s not likely that Microsoft will bother with any other providers with the Entity Framework and LINQ to Entities on the horizon. There is a way to get standard LINQ to SQL to work with the SQL Server Compact Edition (SSCE) however. You have to use the SqlMetal command-line tool to generate the appropriate file(s). Once you generate the .dbml file, you can even open it in the Visual Studio 2008 designer.
Tags: .NET, data, development, LINQ, SQL Server
Posted in Data Practice, Desktop Development, Web Development | 11 comments; continue the discussion »
I finished playing Half-Life 2 this evening. Wow; it was a blast! It’s been a long wait since the original Half-Life made gaming history and I’m months behind on this release. Version 2 held up to the name and provided an even more gripping experience.
Some highlights are below.
Driving dune buggies and hovercrafts through treacherous territory whilst avoiding death by bullets, grenades, rockets, flaming explosive barrels and deadly neck-ties is quite fun.
Yes, the crossbow is back and better than ever. Perhaps my favorite weapon from the original is back in HL2 and it’s got a shocking surprise. The bolts that the crossbow launches toward your foes are charged. As before, a well-placed single shot should render the enemy…well, dead. I figure they added the electric punch to explain why a single shot to the arm kills. In addition to the charge, an enemy that is struck while near a wall perpendicular to the bolt’s trajectory will be stuck to the wall by the bolt. It’s very cool to witness; they just dangle on the wall where you shot them.
The Havok© Physics Engine makes play delightful. The added realism attributed to this physics engine is a joy to experience. There were even quite a few “puzzles” to be solved that relied on clever uses of the in-game physics. This company is now on a roll, despite the potential setbacks resulting from the HL2 source code theft that included parts of Havok. In fact, Havok is now appearing in all sorts of new games and has entered into a Strategic Licensing Agreement with Sony Entertainment. I’m betting this is all related to the upcoming Playstation© 3.
The Gravity Gun was something to look forward to. From the moment you play catch with “Dog” to the very end when the Gravity Gun gets a super charge, you cannot help but love to switch to this thing and just start throwing things. The coolest thing is picking up a saw blade and hurling clean through a line of zombies. Trying to make sure the blade got wedged into a wall behind them so you could reuse it was half the fun. I won’t spoil the end for those that haven’t played by letting on to it’s new “ability” at the end of the game.
This was definitely one of the more fun games I’ve played in the past few years (there have been a couple). If you don’t own a copy of Half-Life 2, go buy one; if you do own a copy, keep playing or play it again. Personally, I’m looking forward to getting my hands on the Half-Life 2: Aftermath expansion pack.
Tags: Gaming, reviews
Posted in Gaming | No comments yet; your thoughts are welcome »
The preceding is the opinion of the author(s) and is not intended to malign any religion, ethnic group, club, organization, company, or individual. The views of the writer are his own, and do not in any way reflect the views of the site they are posted on, other sites affiliated with this site, the staff involved with the site, or any other members of this site. For more information, review the full Terms of Use for this site.