| Comments

i just got an email from preemptive about obfuscatin seminars coming up — might be interesting to check out and learn more about how they do/recommend it.  i’m sure in part it will be a commercial for their products, but they do have good ones (and the community edition is included in visual studio)

here’s the details — i’m sure the links were for my email address response, so if you register it will likely throw off their campaign marketing counts, but oh well…

The next series of webinars from PreEmptive Solutions will focus exclusively on best practices for developers. In the first part of the year, we focused on describing the functional components of obfuscation, the role of obfuscation in risk management and selection criteria for an enterprise obfuscation solution. Over the next three months, we will present specific tips, techniques and competencies that developers can leverage to protect their code, simplify their development process and improve the quality of their work.

Best Practices of Obfuscation Part 1- Optimal Configuration and Use
When: June 26th 1:00-1:30 PM EST
Presented by Gabriel Torok: President of PreEmptive Solutions
Participants will develop an understanding of the best practices in applying fine-grained obfuscation to maximize obfuscation value and simplifying the configuration and the build process and IDE integration to further simplify, standardize and streamline development.  Topics covered will include: Using Declarative obfuscation, Strong naming an obfuscated assembly, Dealing with Reflection, Configuring and using Incremental Obfuscation, Integrating Dotfuscator into your build process, and others.

Best Practices of Obfuscation Part 2-Competencies Needed Before Adding Obfuscation to Your Build Cycle
When: July 24th 1:00-1:30 PM EST
Presented by Jason Haley, independent consultant/analyst and author of the soon to be published white paper, Obfuscation best practices for developers.
Obfuscation and the impact of distributing obfuscated code can impact virtually every stage of an application's lifecycle.  If your organization needs to maximize protection and minimize the level of effort and complexity,  this session will articulate the competencies required to effectively integrate obfuscation into a development lifecycle.

Best Practices of Obfuscation Part 3- Gotchas for Developers Obfuscating .NET Assemblies
When: August 21st 1:00-1:30 PM EST
Presented by Jason Haley, independent consultant/analyst and author of the soon to be published white paper, Obfuscation best practices for developers.
There are always surprises in every development project, obfuscation does not need to be one of them. Participants will drill down into the most common issues that .NET developers face when obfuscating assemblies and the options available to manage them.

Register for all three - we hope you can join us!

Regards,

Sebastian Holst
SVP Sales & Marketing
To register please start here

| Comments

the team system (trial) bits are now available for download to everyone!  now you don’t have to wait to order, or be an MSDN subscriber to try them…

remember, these are LARGE image files…be patient.

download at:

Visual Studio 2005 Professional Edition 90-Day Trial

Visual Studio 2005 Team Suite 180-Day Trial 

Visual Studio 2005 Team Foundation Server Trial Edition

| Comments

gardens point has released a beta of their ruby.net compiler.  they say this is not a bridge, but a true compiler.

check it out: gardens point ruby.net compiler

| Comments

i came across this ad on msn, and was intrigued by the banner — so i clicked.

very interesting and brought awareness to something that i haven’t been paying attention to.

the future of the internet

another good one: don’t regulate

| Comments

in a previous post i started to take a quick look at the new BLINQ bits released this week at teched.  to recap, essentially the core functionality of BLINQ (i love saying that…they should have named it bling) is to generate a CRUD structure of code and asp.net pages for your data structure.  the “inq” in BLINQ is because the code generated uses LINQ.  okay, all that aside, let’s start taking a look.

BLINQ is a command-line tool.  type BLINQ to see the options.  for simplicity comparison sakes for rails, i chose the /noStyle option so it would generate the vanilla-plainjane-nofrills-whiteasmilk scaffold site on my pubs database.  yes, i’m using pubs — it’s easy to relate to most and has a simple structure including some foreign key relationships, etc.

for those new to rails (ruby on rails), i’m not going to go through a tutorial, and if you don’t know/care what rails is, then move along, there is nothing to see here.  if you know a bit, then here’s a little bit more info to help setup the comparison.  after installing rails, you’ll be working with sql server (or sql server express – which is free).  to work with sql server in ruby/rails you’ll need want an additional database library for ado to make things a bit easier.  you can download it here and read more info about it

ensure the file (ADO.rb) is located in your

<rubyinstall>\lib\ruby\site_ruby\1.8\DBD\ADO

once you have that and after you have generated your rails app go to your database.yml file and modify the configuration.  for simplicity sake, i’m only using one configuration type (development) to make things easier, since i’m just experimenting anyway.  here’s what my database.yml looks like:

development:
  adapter: sqlserver
  database: pubs
  host: (local)\SQLEXPRESS

after i have that, i’m ready to go.  again for simplicity sake, i’m just using the authors table.  so generate a model and a controller for author.  here lies my first beef with rails when compared to BLINQ.  in rails you have to generate all your scaffolds individually.  unless i’m mistaken and there is an uber scaffold command, i like how BLINQ looks at all the data and generates them all for you.  *however* it would be nice to specify params maybe…so that i could have utmost flexibility — default generate all, or add an argument option for me to specify the tables.  anyhow, i digress…

then in your author controller, change it to scaffold:

class AuthorController < ApplicationController
 scaffold:author
end

once that is in place, and you start your WEBrick server, you should be able to browse to http://localhost:3000/author/ and get this:

railsscaffold1 [2]

and therein lies my love of rails scaffolding!   a simple, single line in the controller and i have full access to all the features.  rails is doing everything behind the scenes.  a quick look at my application views folder will show no files…think httpmodule for you asp.netters.  i wish BLINQ would implement this — an httpmodule/handler that would allow me to configure the scaffold and then do all the magic goop for me.

here’s my second disappointment with rails scaffolding …there is no default page…i like how BLINQ generates an index page for me so that i can go to the site and then pick the pages i need to play with.  even though BLINQ does this for me though, when on a page (i.e., authors), there is no ‘back to index’ link at all…so i rely on the back button too much.  now remember i stated earlier that i used the /noStyle option to generate my BLINQ bling.  if i hadn’t, then BLINQ *does* generate a skin/theme for me which uses the asp.net menu control and on every page i can see the nav structure.  it uses a master page.  i think even in the /noStyle option, a master page with a nav structure would be helpful — but i guess /noStyle means “no style” .

okay, so we’ve gotten this going…are you sick of command lines yet?

now let’s look at the functionality of the rails scaffold…want to delete something?:

railsscaffold2

nice! a confirmation…no confirmation in BLINQ generated UI — that needs to change!

when editing in rails scaffold, it takes you to a singular details screen with an update/back.

railsscaffold3

in BLINQ, you have inline datagrid editing with update/cancel

blinqedit1

damn it — give me a back link here!  i have a default/index page, so give me a link back to it!

it should be important to note that i’m calling it rails scaffolding, but technically it is rails in combination with activerecord doing the ruby/rails magic here.

one thing that i think both suck at right now are two key things. 

validation: it knows what is required, etc., so why not wire up some validation for me?  instead i get goobly-guck error messages (note to our asp.net team: we should use the customErrors and make something nice in the generated page)

foreign key relationships: it doesn’t generate user friendly views of this.  take the employees view (shown in BLINQ gen here):

blinqedit2

the drop downs are the values of the relationships and don’t portray the user-friendly view of the data…rails generated code is no different.  again, we know the relationship…let’s put some more magic in here to make it whiz-bang!

one thing to note is that BLINQ does get it a bit.  look below where my cursor is:

blinqscaffold4

there is a link created for titleauthors — which is the relationship on this authors table…so i can directly go to that location.  in rails, this isn’t there…

railsscaffold1 [2]

paging: this is a quick one — in rails, it is ‘next page’ and ‘previous page’ (just look at some of the shots above) — so how many ‘next’ pages are there?  using the gridview in asp.net gives us numeric paging — done.

one thing that rails understands is plurality.  my table is actually called ‘authors’, but you’ll notice the model/controller/etc are authors — it ‘gets it’ and does everything for me (yes, people/person works too).  BLINQ doesn’t necessarily have this problem because it is generating specific code for the tables…if the handler/module method was implemented, maybe that could be examined…but for now it is a ‘cool’ feature in rails — not earth shattering, but nice to know if you need it.

for where i think BLINQ misses right now is in some easy hits. 

  • where’s atlas?  why not make all the pages zing with some uber magic?  how about an /async option on BLINQ.exe? the CRUD pages scream with pleading for some low-hanging love.
  • please put in a delete confirmation
  • show me my index link
  • linq — this is cool how it uses this…take a moment to examine the code generated…it is pretty fun to look at — the pages using objectdatasources to bind to linq objects…yummy.

anyhow, a quick examination of the two in a few minutes…there are pros and cons to how each generates the respective ‘scaffold’ for their technologies (i’m not arguing the merits of the actual technologies here, just comparing some like implementations of features).

i think that BLINQ will evolve over time, hopefully more for the better — maybe (crossing fingers) BLINQ will be another open source project out of the asp.net team — anyone?

tags: , , , , , ,