text:
The Best Skyrim Special Edition Armor Mods on Xbox One, PS4, and PC
Best Skyrim special edition armor mods on Xbox One, PS4, and PC
Check out the best armor mods you can get for Skyrim!
This mod adds a new set of armor imported from MMO Black Desert Online. You'll be able to craft the armor, boots, gauntlets, and helmet – and all will work for either male or female models. this is by no means top of all the best armor mods. we have plenty more to come
armor, boots, gauntlets, helmet all four. Armor you can smelting in the "Daedric". It will function
With this mod, you'll be able to craft Darth Vader armor as well as a saber hilt, which you can enchant with a saber blade once you pick up a lightsaber mod.
This mod adds a highly detailed Darth Vader armor and saber hilt craftable under daedric with no perks or materials. The saber hilt is just that, a hilt. Use your favorite saber mod with this to enchant it with a blade. The helmet is three pieces, just like the film. Enjoy!
Best Skyrim special edition armor mods
For those who enjoy the strength of Heavy, but don't enjoy covering their faces with giant metal blocks, there's Heavy Armor Hood. This mod drops a Deadric-level hood near Windhelm with the stats of heavy armor, but appearance of a cloth hood.
Witcher 3 Viper Armor lets you run around in the Viper school garb of Geralt, the protagonist of last year's hit RPG, The Witcher 3: Wild Hunt. Note: the set is made for only male character models.
With Nazgul Armor, you can dress as the villainous Lord of the Rings riders. This set is light armor with Dragonscale-level stats and works for male and female characters.
Will work for male and female characteThis mod adds armor based upon the Nazgul, from the Lord of the Rings franchise. It's light armor with the same stats as dragonscale and can be crafted and improved. You'll find it under the Daedric category while smithing, but requires no perks to craft.rs of all races.
Now you can wield the mythical Skyforge to create stronger versions of Dragonplate armor (and Dragonbone weapons, if you're into that too).
This mod adds three Wolverine sets, a Wolverine follower, Wolverine claws, a Wolverine chest — basically all the Wolverine you could need.
The Morag Tong is a powerful secret society, and as such, Morag Tong armor should pack a little more of a punch. This mod adds a set specially enchanted for assassins and with stats equivalent to Glass tier.
The Aurorans are special Daedric creations that have appeared in past Elder Scrolls games. This mod places Auroran armor pieces in dungeons throughout Skyrim, meaning you not only get to don their iconic gear, but also will have to work appropriately to acquire it.
this member of our best mods list lets you craft and upgrade Daedric Light Armor (with the Daedric Smithing perk). The armor is blue and glows blue. It is made at a forge and uses the same recipe as vanilla Daedric, but uses Malachite ingots instead of Ebony Ingots. It has the stats of Dragonplate Armor, but around half the weight.
Best Skyrim special edition armor mods
With the Daedric Blue Light Armor mod, you can craft awesome Daedric gear that weighs half as much as the standard armor. Also, it glows blue!
Another custom set, Soul Eater is attained by slaying Crusix, soul eater and angel of death.
The Crom mod adds a number of craftable armors that turn your hero into a skeleton, either clothed or bare bones (hah). Basically, putting on this armor takes off your skin.
Need even more Witcher 3? This mod adds the Feline armor set to Skyrim: Special Edition. Thanks, mods.
Conquer Skyrim as an icy Death Knight with this mod. Defeat the ominous Ashenrune at Arcwind Point to claim his armor and learn to summon a fittingly spectral horse.
It's hard to feel like a badass mage in Skyrim, given you'll be walking around in nothing but cloth. It may be time to take up the Ebony Archmage armor set and let Tamriel know who's boss. Cons: the helmet does not always seem to work on Argonians and Khajiit. Pros: comes with a scythe.
Molag Bal, the Prince of domination, harvests souls and created Vampires. If you hope to be even half as hardcore as him, you'll need this Knight of Molag Bal armor.
For the female Witchers out there, this Ciri armor mod will put you right on the Path. The best mods can do anything.
Skyrim has room for sorceresses as well. This member of our best mods list will grant you that decks you out as either Triss or Yennefer from The Witcher 3.
Corvo is the assassin protagonist of another Bethesda game, Dishonored. You can bring him right over to Skyrim with this mod.
Alright, this choice for best mods actually turns you into a Gourd by adding a race, rather than. But we've included it here because it's good enough for us.
Another great option for spellcasters, this mage set is well hidden within the College questline, and offers great stats and starting enchantments at either light or heavy weight classes.
This mod adds a series of the best craftable fur hoods, so that your character has something more realistic to wear during the cold seasons of Skyrim. It's also compatible with the famed Frostfall mod, offering maximum cold protection. xbox one mods
The PS4 doesn't get a lot of armor mods love because of Sony's restrictions on the use of external assets. This mod looks to help by providing craftable Nocturnal Robes.
Armored Robes is another great entry on our best mods list for mages, adding robes with ratings to your crafting options.
If you spend most of your time in Skyrim stabbing things, you might as well do it dressed as Ezio from Assassin's Creed.
This mod seems pretty self-explanatory.
Incarnate Creatures adds craftable armor that, when equipped, turns you into a fantastic creature. Here's the list of possibilities: Minotaur, Dwarvcenturions, Dwarvcommander, Dwarvdolls, Dwarvgynoids, Dwarvtrooper, Ebony Knight, Flame Lord, Knight of Order, Malaburo, Mara, Molag Bal, Molag Bal Rusty, Skeletons, Chicken Man, Ashlotte, Draugir, Drowner, Drowned Dead, Rotfiend and Greater Rotfiend
Turn any into either light or heavy with this mod, ideal for anyone looking for more equipment freedom.
This entry on our best mods list adds Ashara Princes of the Woods armor to Skyrim through 17 different armor pieces, 6 fur complements, and 8 wigs. Between those pieces and various color options, there's 122 new items to try out.
Become a Beast Slayer with this custom heavy armor set, craftable after completing a special quest picked up from books in Whiterun.
Be Scorpion. What else is there to say, really.
Those are all the best mods for skyrim special edition on ps4, xbox one, and pc


text:
In this Issue:
45 Delicious Holiday Recipes. Blending good taste with good health to help everyone get stronger, slimmer, happier and healthier than ever before. Take a look for yourself.
Get every issue of Eating Well Magazine and unlimited access to over 150 top magazines in one app, including back issues. Try Free at Texture.com
About Eating Well Magazine:
The Eating Well Magazine is the perfect blend of great taste and good health. Read more on delectable dishes that satiate the palate and help you lose any extra inches around the waist for a slimmer, healthier you. The latest Eating Well digital magazine issue is now available on the Texture Magazine App for iPad, iPhone, Android tablets and smartphones as well as Windows 8 devices.
Also try other popular digital magazines like Every Day with Rachael Ray, Family Circle in our Food and Cooking Magazines section.
About Texture:
Texture allows you to access to over 150 of the world best digital magazines. Get unlimited access to your favorite magazines including back issues anytime, anywhere using our app.

subset: commoncrawl


text:
Model B30A40
Analog Input Trapezoidal Brushless Servo Amplifiers
60-400 VDC Input, 15A cont. (30Apk)@ 60-400 VDC Output
from $625.00/ea
The B30A40 Series PWM servo amplifiers are designed to drive brushless DC motors at a high switching frequency. They are fully protected against over-voltage, under-voltage, over-current, over-heating and shortcircuits. All models interface with digital controllers or can be used as stand-alone drives. They require only a single unregulated DC power supply. A single red/green LED indicates operating status. Loop gain, current limit, input gain and offset can be adjusted using 14-turn potentiometers. The offset adjusting potentiometer can also be used as an onboard input signal for testing purposes when SW1-1 (DIP-switch) is ON.
Features of Analog Input Trapezoidal Brushless Servo Amplifiers


text:
Home | Contact Us | Link to Us
New softwaremightymacros Dat add-in WinExt Batch Operator DiskGenius Standard SMT1 BurnAware Free MinimizeToTrayTool ChequePulse Cheque Printing Software IOTransfer HttpMaster Professional PDF Shaper Professional HttpMaster Express ThesesAssistDrawer PDF-Tools Aiseesoft Mac Cleaner IDpack Business
Top softwareNoteTab Pro TOWeb Simple Home Budget Lite TickInvest FreeFixer HDClone Free Edition RoboTask Lite Nevitium Free Invoice Software HTMtied
Related searches02jam Offline Free Downloads 02jam Offline Free Download Free Downloads For Mac 02jam Offline Free Download Free Downloads 02jam Offline Free Download Ryl Offline Free Downloads o2 Jam Offline Free Downloads Rf Offline Free Downloads Cabal Offline Free Downloads 02jam Offline Download Free 02jam Free Downloads
02jam Offline Free Downloads free downloads
Hot Rod City Parking Game - Driving Skills Simulator FREE 1.0 - This game features ALL FREE downloads - tons of free-to-play content Multiple ... (22/0) download
Free Wifi gibraltar 2.0 - Instantly find FREE WiFi Internet hotspots wherever ... in Gibraltar, online or offline. Free Wifi Gibraltar is a comprehensive directory of free wireless hotspots in Gibraltar ... again! Features: - list of free hotspots with addresses and phone numbers (available offline). - location map of each ... (3/0) download
Free Hypnosis Treatment 2 - presents this collection of free hypnosis MP3s recorded over the last several years. Free downloads include Weight Loss, Confidence ... ... (3/0) download
Just One Voice Press 2.5.3 - Limited number of free downloads of a Poverty and ... com *This App is free to download. Includes the issue Poverty and Promise - Free as a complimentary download ... (2/0) download
CoolPapers - The Best Wallpapers & Backgrounds 1.3.17 - providing you with 5 free downloads. Unlimited downloads are available easily via ... added daily. Features 5 FREE wallpapers Browse and search ... ... (4/0) download
Custom Alert Tones - Customize your new text, voicemail, email, +more alerts 1.6.0 - app and get unlimited free downloads to customize your sounds ... and tons more! UNLIMITED FREE DOWNLOADS * Download this app ... as you want for free. * Share with friends for free. * Stop paying for ... (3/0) download
Vantage West Kelowna Real Estate 2.0.1 - estate information, View listings, Free Downloads, Meet our team and ... (5/0) download
MyLight HD 2.1 - ***************************** Top Free downloads for iPad: #2 Italia ... very popular in Top Free Utilities downloads for iPad ***************************** No ... (2/0) download
COCO.FM 1.1.4970 - studios, DJ Sets, Promos, Free Downloads, EDM News, Pictures, Videos ... (4/0) download
FreeSpamFilter Screensaver 1.0 - A free screensaver from Freespamfilter.nl ... and more with our FREE Downloads. Download Anti Virus Software ... Protect your PC A free screensaver from Freespamfilter.nl ... (954/0) download
Foot ball 03 6 - Fast and free downloads of newest and simply new games for pc Free online soccer game Play For Your Club Free Online Soccer Game. Play ... personal computers. Fast and free downloads of newest and simply new games for pc Free online soccer game Play For Your Club Free Online Soccer Game. (146/0) download
FastestP2P Pro 4.1 - Turbo Speed for free downloads, you need not pay ... from malicious distributors. Adware-free, has no business in ... The problem? well, 19 downloads were selected from among ... (21/0) download
RGS Creative 220.127.116.11 - designs available as separate free downloads. User can define any ... (1/0) download
Flash Brochure Free Word to PDF 2.5 - Flash Brochure Free Word to PDF is ... converter freeware. With this free PDF creator, you can ... (5/0) download
Nelson Email Organizer - NEO Free 3.1 - NEO Free Instantly Organizes Outlook Email ... NEO add-in, NEO Free turns Outlook into a ... that Outlook forgot. NEO Free breaks down Outlook's frustrating ... (18/0) download
Singapore MRT Offline Free 1.2.0 - Singapore MRT works offline and helps you calculate ... station on every line. Free updates for future station openings and timetable changes. - Offline routing with clear map ... (0/0) download
Cram Jam 1.0 - Jam is a completely free puzzle game! Based on ... (32/0) download
Free Word Excel Password Wizard 2.0 - Free Word / Excel Password ... but is a completely free download. Unlike other supposedly "free" downloads, it is a full ... (23/0) download
eMusic - 50 Free MP3 offer 1.0 - iTunes in number of downloads sold. Delivering more than 4.5 million downloads per month; eMusic features ... service that offers 50 free downloads at sign-up, acclaimed ... so start downloading your FREE MP3s today and take ... (17/0) download
GnutellaWire 2.9.0 - for faster and safer downloads. It's a product built ... of finished or wrong downloads, UPnP support, proxy support ... (5/0) download
Fonts N/A 1.0 - Download hundreds of free fonts from here, courtesy ... (80/0) download
Culture & Traditional Icons 220.127.116.11 - High Quality Royalty-Free Icons for Windows, Mac ... from one click. Icons free download at iconsdownloads.com ... (4/0) download
Computer & System Icons 22.214.171.124 - High Quality Royalty-Free Icons for Windows, Mac ... from one click. Icons free download at iconsdownloads.com ... (8/0) download
Art & Entertainment Icons 184.108.40.206 - High Quality Royalty-Free Icons for Windows, Mac ... from one click. Icons free download at iconsdownloads.com ... (14/0) download
Kakashi Screensaver 1.0 - Free anime and manga Kakashi ... Download is completely 100% free, fast and easy to ... (15/0) download


text:
Death of a Salesman
A slew of new polls suggest Obama is not a great pitchman for his policies.
On Thursday, the president will travel to Holland, Mich., to tout investments created by the Recovery Act. Several other administration officials, including the vice president, will hit the road, too. These periodic jaunts are part of "Recovery Summer," a months-long enterprise that, like the summer trips everyone else takes, will be punctuated by a single question: "Are we there yet?"
Economists may say, yes, the economy is recovering (maybe), but the country says no. Only 25 percent say the economy is improving, according to a recent CBS survey. That's just one of the dark findings for the administration in a slew of recent polls that suggest that the administration's summer tour will do little to improve the president's political fortunes and those of his party.
Three polls that came out in the last two days offer discouraging news for the White House. In the Washington Post/ABC News poll, public confidence in the president has hit a new low. Six in 10 voters say they lack faith in the president. In a CBS News poll, 54 percent of the country disapprove of his handling of the economy, the highest number to date. In a Pew Research Center/National Journal poll, the number of Americans who approve of the president's health care legislation, the signature achievement of his presidency so far, sits at an anemic 35 percent.
When politicians are confronted with bad poll numbers, they often say that these surveys are just a "snapshot in time." That can be true. Fortunes can change. Doom is not locked in. But what's so bad about these surveys is that they paint a very dark picture about the president's ability to brighten the future. If Obama can't improve things for Democrats, no one can. And as bad as the president's numbers are, the Democrats in Congress are in even worse shape.
Candidate Obama used to joke about rays of sunshine coming in when he started to speak. Now he brings the clouds. He's spent a great deal of time talking about the Recovery Act and health care reform, but the political fortunes of those programs are dismal, which suggests his ability to persuade and change minds is seriously damaged.
He has been trying to sell the success of his stimulus legislation for months in speeches, interviews, and events all over the country. In the CBS poll, only 23 percent think it has helped the economy. Only 13 percent think it has helped them personally. Despite all of his efforts, people are either ignoring him or tuning him out—or they can't hear him over the bad economic news. Whatever the reason, the best argument Obama has for how he and Democrats have addressed the issue people care the most about is one that people aren't buying.
The situation on health care is worse. There have been some signs that public opinion about health care was improving a little, but the Pew and CBS polls offer a darker outlook. Forty-nine percent disapprove of the new legislation, according to the CBS poll, and only 36 percent approve. Pew has nearly identical numbers.
This is not the way the president said things would turn out last March in a stirring speech he gave to Democrats on the eve of the House health care vote: "I am actually confident that it will end up being the smart thing to do politically because I believe that good policy is good politics. … Betsy [Markey] is in a tough district. The biggest newspaper is somewhat conservative, as Betsy described. They weren't real happy with health care reform. They were opposed to it. Betsy, despite the pressure, announced that she was in favor of this bill. And lo and behold, the next day that same newspaper runs an editorial saying, you know what, we've considered this, we've looked at the legislation, and we actually are pleased that Congresswoman Markey is supporting the legislation."
The president has worked hard to improve the political fortunes of health care, but it hasn't worked. He might not want to try anymore. It's not just that he's ineffective. In the CBS poll, the only issue Obama was faulted for spending too much time on was health care. If he spends more time trying to convince people of the merits of health care (which only 6 percent told CBS was the country's most important problem), he risks being criticized for not spending enough time on the economy, which 39 percent of the country think is the most important problem. Fifty-two percent already think he's not spending enough time addressing economic problems.
The best news for the president and Democrats is that 62 percent of those polled say that Congress should extend unemployment benefits. Republicans have blocked legislation that would do so and the president has gone after them for it. The White House also takes comfort in the fact that the country has an even lower opinion of Republicans in Congress than they do of the president. Still, 51 percent of the country tell the Washington Post that they'll vote for a Republican to put a brake on Obama policies, and those who say they are most likely to vote in the November elections say they prefer the GOP over Democratic rule by 56 percent to 41 percent. If that sentiment continues, the White House will have a bummer summer followed by a terrible fall.
Become a fan of Slate and John Dickerson on Facebook. Follow us on Twitter.
Become a fan of Slate and John Dickerson on Facebook. Follow us on Twitter.


text:
'Star Trek Into Darkness': Benedict Cumberbatch Promises He's Not Khan!
When it comes to 'Star Trek Into Darkness,' the main talking point is without question the identity of Benedict Cumberbatch's character. Is he playing an updated version of a classic villain, say, Khan for example? The word thus far from the creative team has been a definitive no -- but who ever trusts what these notoriously secretive folk say anyway?
Today the denials get firmer, as we have Cumberbatch himself weighing in, talking in some detail about who his character is and what his name isn't -- and that it is NOT Khan.
Speaking with Access Hollywood at a recent junket for 'Star Trek Into Darkness,' Cumberbatch said in no uncertain terms that his name is "John and not that other name." Far from being coy, the British thesp explained a bit further.
I play John Harrison who's a terrorist and an extraordinary character in his own right. He's somebody who is not your two-dimensional cookie cutter villain. He's got an extraordinary purpose, and I hope that at one point or other in the film you might even sympathize with the reasons he's doing what he's doing — not necessarily the means and the destruction he causes. But it was a great ride, not just because he's the bad guy and the antagonist but also because he has a purpose and it's hard not to see his point of view at certain points."
This "John Harrison" business jibes with the first publicity still released by Paramount of Cumberbatch (seen above); Harrison was the name in the caption. Obviously, this is their story and they are sticking to it.
That being said, it's our right as geeks to be skeptical, and you'll excuse us if we're still not 100% convinced that Cumberbatch's baddie won't ultimately be revealed as someone quite familiar to Trekkies.
You can read more from Cumberbatch, including a quote about how epic in scale the film is (much bigger than the first), over at Access Hollywood.


text:
THE SQL Server Blog Spot on the Web
Over the past eighteen months I have worked on four separate projects for customers that wanted to make use of Visual Studio 2010 Database projects to manage their database schema.* All the while I have been trying to take lots of notes in order that I can write the blog post that you are reading right now – a compendium of experiences and tips from those eighteen months. I should note that this blog post should not necessarily be taken as a recommendation to actually use database projects in Visual Studio 2010 – it is intended to be useful for those of you that have already made the decision to use them; having said that, I do make recommendations as to actions I think you should take if you have made that decision.
First let's be clear what we're talking about here. Visual Studio Database Projects have been known by a few different names down the years, some of which you may be familiar with. If you have ever heard the terms datadude, DBPro, teamdata, TSData or Visual Studio Team System for Database Professionals then just know that all of these terms refer to the same thing, namely the project type highlighted below when starting a new project in Visual Studio:
From here onwards I am going to refer to Visual Studio Database projects and all the features therein simply as datadude because that's a popular colloquial name (and is also much quicker to type). Know also that at the time of writing the features that I am talking about here are currently undergoing some changes ahead of the next release of SQL Server (i.e. SQL Server 2012) in which these features are mooted to be delivered under a new moniker - SQL Server Developer Tools (SSDT).
OK, with all those preliminaries out of the way let's dig in.
Continuous Integration (CI) is a development practise that has existed for many years but in my experience has not been wholly embraced by the database community. The idea behind CI for databases is that every time a developer checks-in a piece of code be it a stored procedure, a table definition or whatever, the entire database project is built and then deployed to a database instance. Microsoft provide a useful article An Overview of Database Build and Deployment that goes some way to explaining how to setup your CI deployment.
CI is one of the fundamental tenets that underpins a lot of the things I talk about later in this blog post and hence gives rise to my first recommendation when using datadude:
Recommendation #1: Use Source Control and implement a Continuous Integration deployment
Recommendation #1: Use Source Control and implement a Continuous Integration deployment
In an earlier draft of this blog post I outlined in detail the CI configuration from one of the aforementioned projects. Its not suitable for inclusion at this point in the current draft but I still think there is some useful information to be gleaned so I have included it below in "Appendix – An example CI configuration".
Each of the four aforementioned projects were brownfield projects meaning that each already encompassed some established, deployed, databases and they wanted to bring those databases under the control of datadude. Each project had thousands of objects across multiple databases and in this situation it is very likely that some of the stored procedures, views or functions will refer to objects in one of the other databases. The way to resolve those references is to use database references however once you have applied all of your database references it is still very possible that you will run into a situation where code in database A refers to an object in database B while at the same time database B refers to an object in database A. This is depicted in the following figure:
Here we have a view [DB1]..[View2] that selects data from [DB2]..[Table1] and a view [DB2]..[View1] that selects data from [DB1]..[Table1]. Datadude does not allow a database reference from [DB2] to [DB1] if there is already a database reference from [DB2] to [DB1] and hence will return an error akin to:
We have the proverbial chicken-and-egg problem, [DB1] can't be created before [DB2] and vice versa. This problem is solved by using Composite Projects (not to be confused with Partial Projects) which allow you to split objects that are intended to be in the same database over multiple datadude projects. I could go over how you set one of these things up but there's really no need because there is a rather excellent walkthrough on MSDN at Walkthrough: Partition a Database Project by Using Composite Projects; the reason for me mentioning it here is to make you aware that composite projects exist and of the problem that they solve. If you are introducing datadude into a brownfield project then it is highly likely that you are going to require composite projects so learn them and learn them good.
One important last note about composite projects is to answer the question "How does the tool know that the multiple projects refer to the same database?" The answer is given at the walkthrough that I linked to above; namely, it says:
"Do not specify server variables and values or database variables and values when you define references in a composite project. Because no variables are defined, the referenced project is assumed to share the target server and database of the current project."
"Do not specify server variables and values or database variables and values when you define references in a composite project. Because no variables are defined, the referenced project is assumed to share the target server and database of the current project."
So now you know! To put it another way, if you reference one project from another and don't tell datadude that the two projects refer to different databases then it assumes they refer to the same database.
Datadude provides the ability to analyse your code projects for code in stored procedures and functions that it considers to be inferior and highlight it – this feature is called Code Analysis. Note that Code Analysis will not highlight code that is syntactically incorrect (datadude does that already, which may well be considered its core feature), it highlights code that is syntactically correct but may be considered defective when executed. Specifically Code Analysis will highlight the following perceived code defects (click through on the links for explanations of why these are considered code defects):
In my opinion the best aspect of Code Analysis is that it can be run as part of your Continuous Integration deployment meaning that if anyone checks in some deficient code, BOOM, your CI deployment fails and the developer is left red-faced. Nothing else has increased the code quality on my projects quite like running Code Analysis as part of a CI deployment.
Hopefully I have convinced you that turning on Code Analysis is a good idea. If you agree then head to the project properties and check the box labelled Enable Code Analysis on Build. I also recommend checking the Treat warnings as errors boxes otherwise you'll find that undisciplined developers will simply ignore the warnings.
N.B. Incidentally if you have time I highly recommend that you go and read the blog post I linked to there – Discipline Makes Strong Developers by Jeff Atwood. I've read many thousands of blog posts in my time and that is the one that has influenced me more than any other.
N.B. Incidentally if you have time I highly recommend that you go and read the blog post I linked to there – Discipline Makes Strong Developers by Jeff Atwood. I've read many thousands of blog posts in my time and that is the one that has influenced me more than any other.
Turning on Code Analysis on a greenfield project is a no-brainer. On a brownfield project its not quite so easy – on a recent engagement I moved a single database into datadude and turned on Code Analysis which immediately found over two thousand perceived code defects. I generally abhor the use of that famous maxim if it aint broke, don't fix it in our industry but on occasions like this you may be well advised to heed that advice and leave well alone for fear of breaking code that does what it is supposed to (no matter how inefficiently it does it). Instead you do have the option to suppress Code Analysis warnings/errors:
I advise using Code Analysis suppression sparingly. Recently I discovered that one of the developers on my team had decided it was OK to simply suppress every error that was thrown by Code Analysis without first investigating the cause. I was not amused!
Recommendation #2: Turn on Code Analysis
Recommendation #2: Turn on Code Analysis
An operation is considered idempotent if it produces the same result no matter how many times that operation is applied; for example, multiplication by a factor of one is an idempotent operation – no matter how many times you multiple a number by one the result will always be the same.
Idempotency is a vital facet of database deployment using datadude. Datadude tries to ensure that no matter how many times you deploy the same project the state of your database should be the same after each deployment. The implication here is that during a deployment datadude will examine the target database to see what changes (if any) need to be made rather than simply attempting to create lots of objects; if all the objects already exist nothing will be done. In my opinion this is the single biggest benefit of using datadude – you don't have to determine what needs to be done to change your database schema to the desired state, datadude does it for you.
If I have convinced you about the value of idempotency within datadude then you should also realise that the same rigour should be applied to data as well. Datadude provides Post-Deployment scripts that allow you to deploy data to your schema however there is no inbuilt magic here – datadude will simply go and run those scripts as-is, it will not try and comprehend the contents of those scripts. What this means is that you, the developer, are responsible for making your Post-Deployment scripts idempotent and the easiest way to do that is to employ the T-SQL MERGE statement.
T-SQL's INSERT is not sufficient as it will work once and thereafter fail as it will be attempting to insert already inserted data; this gives rise to my third recommendation:
Recommendation #3: When running your deployment in a test environment, run it more than once.
Recommendation #3: When running your deployment in a test environment, run it more than once.
I consider Code Analysis and Idempotency to be so important that I called them out as dedicated headlines. In this section I'll outline some additional simple measures that you can undertake and which will, if employed correctly, have a profound effect on the success of your datadude projects.
I find it is very useful to maintain a log of deployments that have been made to a database and my chosen method is to use a Post-Deployment script to insert a value into some table. Here's the definition of the table I use for this:
CREATE TABLE [dbo].[DeployLog] ( [BuildId] NVARCHAR(50) , [DeployDatetime] SMALLDATETIME , CONSTRAINT PK_dboDeployLog PRIMARY KEY ([DeployDatetime]) )
CREATE TABLE [dbo].[DeployLog] ( [BuildId] NVARCHAR(50) , [DeployDatetime] SMALLDATETIME , CONSTRAINT PK_dboDeployLog PRIMARY KEY ([DeployDatetime]) )
CREATE TABLE [dbo].[DeployLog] ( [BuildId] NVARCHAR(50) , [DeployDatetime] SMALLDATETIME , CONSTRAINT PK_dboDeployLog PRIMARY KEY ([DeployDatetime]) )
In my Post-Deployment script I will use:
INSERT [dbo].[DeployLog]([BuildId],[DeployDatetime]) VALUES ('$(BuildId)',GETDATE());
INSERT [dbo].[DeployLog]([BuildId],[DeployDatetime]) VALUES ('$(BuildId)',GETDATE());
INSERT [dbo].[DeployLog]([BuildId],[DeployDatetime]) VALUES ('$(BuildId)',GETDATE());
to insert a row into that table during every deployment. $(BuildId) is a variable defined in the .sqlcmdvars file of my project:
Here is what we see inside that file:
The $(BuildId) variable has been defined with a default value of UNKNOWN and hence subsequent deployments from Visual Studio will result in the following:
On first glance that might not seem particularly useful however it comes into its own if you are doing CI deployments (see recommendation #1) because each build in a CI environment will result in a new build identifier. The following command-line call to vsdbcmd.exe is how deployments are generally done using datadude, note the presence of the /p:BuildId switch:
..\Tools\VSDBCMD\vsdbcmd.exe /Action:Deploy /ConnectionString:"Data Source=.;Integrated Security=True;Pooling=False" /p:BuildId="some-value" /DeployToDatabase:+ /ManifestFile:.\FinanceDB\sql\release\FinanceDB.deploymanifest
..\Tools\VSDBCMD\vsdbcmd.exe /Action:Deploy /ConnectionString:"Data Source=.;Integrated Security=True;Pooling=False" /p:BuildId="some-value" /DeployToDatabase:+ /ManifestFile:.\FinanceDB\sql\release\FinanceDB.deploymanifest
Your CI tool should be able to replace "some-value" with an identifier for the current build (that's outside the scope of this blog post but any CI tool worth its salt will be able to do this) – when the deployment executes that value will then make its way into your [dbo].[DeployLog] table and you will have a self-maintaining history of all the deployments (datetime & build identifier) that have been made to your database.
Recommendation #4: Maintain an automated history of your deployments
Recommendation #4: Maintain an automated history of your deployments
It is natural to navigate through all of the objects in your database project using Solution Explorer however datadude provides a better mechanism for doing just that – the Schema View window.
Schema View provides a logical view of all the objects defined in your database project regardless of which file they may be defined in. That is very useful for many reasons, not least because it makes it easy to locate whichever object you are after – that's advantageous if multiple objects are defined in the same file. Moreover if some files have property BuildAction="Not In Build" (see later) they won't show up in Schema View (this is a good thing by the way). Schema View is also the place that operations such as refactoring and dependency analysis are launched from.
Some people think that it is important that the name of each file in a datadude project should accurately reflect the object defined within. I disagree; object renames mean that maintaining the filenames becomes laborious and having the Schema View means you never have to use the filenames to navigate your project anyway.
One final reason to use Schema View is the External Elements button:
Toggling this button on means that objects in referenced projects show up in the project that they are referenced from (this is particularly useful if you are using Composite Projects). Note in the following screenshot how the object [dbo].[t1] in project Database2 appears in the [dbo] schema of Database3 – that's because Database3 has a reference to Database2.
For those reasons my fifth recommendation is:
Recommendation #5: Use Schema View in preference to Solution Explorer
Recommendation #5: Use Schema View in preference to Solution Explorer
You will still need Solution Explorer to navigate files that do not contain database objects (e.g. Post-Deployment scripts) but ordinarily you should spend most of your time interacting with Schema View.
When you deploy a datadude project datadude will take care of telling you what it is up to. For example, the following screenshot shows the output from deploying the already discussed [dbo].[DeplogLog]:
Of course it only does this for objects that it knows about and that doesn't include anything in your Pre or Post \deployment scripts so you need to take responsibility for outputting pertinent information from those scripts. Here I have amended the script that inserts into [dbo].[DeployLog]:
SET NOCOUNT ON; INSERT [dbo].[DeployLog]([BuildId],[DeployDatetime]) VALUES ('$(BuildId)',GETDATE()); PRINT CAST(@@ROWCOUNT as NVARCHAR(5)) + N'rows inserted into [dbo].[DeployLog], BuildId=$(BuildId)';
SET NOCOUNT ON; INSERT [dbo].[DeployLog]([BuildId],[DeployDatetime]) VALUES ('$(BuildId)',GETDATE()); PRINT CAST(@@ROWCOUNT as NVARCHAR(5)) + N'rows inserted into [dbo].[DeployLog], BuildId=$(BuildId)';
This gives us much more useful output:
Adding PRINT statements to your Pre & Post Deployment scripts is so easy it really is a no-brainer and hence my next recommendation is:
Recommendation #6: Any action in a Pre or Post-Deployment Script should use PRINT to state what has been done
Recommendation #6: Any action in a Pre or Post-Deployment Script should use PRINT to state what has been done
This is in the same vein as the previous bullet-point – output as much information as is possible. In this case we're talking about outputting the values of all variables that are stored in the .sqlcmdvars file; first, a reminder of what's in that file:
Here is the contents of my amended Pre-Deployment Script:
PRINT 'DefaultDataPath=$(DefaultDataPath)'; PRINT 'DatabaseName=$(DatabaseName)'; PRINT 'DefaultLogPath=$(DefaultLogPath)'; PRINT 'BuildId=$(BuildId)';
PRINT 'DefaultDataPath=$(DefaultDataPath)'; PRINT 'DatabaseName=$(DatabaseName)'; PRINT 'DefaultLogPath=$(DefaultLogPath)'; PRINT 'BuildId=$(BuildId)';
PRINT 'DefaultDataPath=$(DefaultDataPath)'; PRINT 'DatabaseName=$(DatabaseName)'; PRINT 'DefaultLogPath=$(DefaultLogPath)'; PRINT 'BuildId=$(BuildId)';
And the resultant output:
This is the sort of simple amendment that will pay off in spades later in your project (especially if you are supplying many values from the command-line) and again, its so easy to do it there really is no reason not to. Just remember to update your Pre-Deployment script whenever you add new variables to .sqlcmdvars.
Recommendation #7: Output the value of all variables in your Pre-Deployment script
Recommendation #7: Output the value of all variables in your Pre-Deployment script
Datadude doesn't restrict what can go in a file, for example the following file, "t.table.sql", defines three objects; a table, a primary key and a view:
Even though they're all defined in the same file they show up in Schema View separately (one of the aforementioned benefits of using Schema View):
That said, just because you can doesn't mean that you should. I prefer to go for one object per file for the simple reason that its easier to track the history of an object via Source Control. Moreover, if an object is no longer required then it is a simple change to just remove the file containing that object from the build (see "Don't delete anything from your project" later) as opposed to editing a file to remove all traces of an object.
Recommendation #8: Each database object should be defined in a dedicated file
Recommendation #8: Each database object should be defined in a dedicated file
Its always useful to know where time is spent when doing deployments, in my experience the majority of time spent is in the Post-Deployment script (your mileage may vary of course). An easy win is to output the time taken to run your Pre and Post Deployment scripts. Adapt your Pre-Deployment script so that it looks something like this:
DECLARE @vPreDeploymentStartTime DATETIME = GETDATE(); PRINT '****************Begin Pre-Deployment script at ' +CONVERT(VARCHAR(30),GETDATE(),120) + '***********************'; /*Call other scripts from here using SQLCMD's :r syntax Example: :r .\myfile.sql */ PRINT 'Pre-Deployment duration = ' + CONVERT(VARCHAR(5),DATEDIFF(ss,@vPreDeploymentStartTime,GETDATE())) + ' seconds'; PRINT '****************End Pre-Deployment script at ' +CONVERT(VARCHAR(30),GETDATE(),120) + '***********************';
DECLARE @vPreDeploymentStartTime DATETIME = GETDATE(); PRINT '****************Begin Pre-Deployment script at ' +CONVERT(VARCHAR(30),GETDATE(),120) + '***********************'; /*Call other scripts from here using SQLCMD's :r syntax Example: :r .\myfile.sql */ PRINT 'Pre-Deployment duration = ' + CONVERT(VARCHAR(5),DATEDIFF(ss,@vPreDeploymentStartTime,GETDATE())) + ' seconds'; PRINT '****************End Pre-Deployment script at ' +CONVERT(VARCHAR(30),GETDATE(),120) + '***********************';
then do similar for your Post-Deployment script. When you deploy your output will include the following:
Note the lines:
****************Begin Pre-Deployment script at 2011-12-31 20:00:34*********************** Pre-Deployment duration = 0 seconds ****************End Pre-Deployment script at 2011-12-31 20:00:34*********************** ****************Begin Post-Deployment script at 2011-12-31 20:00:34*********************** Post-Deployment duration = 0 seconds ****************End Post-Deployment script at 2011-12-31 20:00:34***********************
****************Begin Pre-Deployment script at 2011-12-31 20:00:34*********************** Pre-Deployment duration = 0 seconds ****************End Pre-Deployment script at 2011-12-31 20:00:34***********************
****************Begin Post-Deployment script at 2011-12-31 20:00:34*********************** Post-Deployment duration = 0 seconds ****************End Post-Deployment script at 2011-12-31 20:00:34***********************
In this particular case its not all that useful to know that the deployment took 0 seconds but if and when your deployments snowball to many minutes it will be useful to know how long your scripts are taking at which point you can investigate further by timing each individual step in your Pre and Post Deployment scripts.
Recommendation #9: Time your deployments and output the timings
Recommendation #9: Time your deployments and output the timings
Hardcoding any value into a piece of code is a fraught practise; you should assume that values previously thought to be constant may not be so in the future. You can protect yourself from future changes by storing all literal values as variables in your .sqlcmdvars file. Sure, you can supply default values for those variables but you have the added advantage that they can be overridden from the command-line when deploying using vsdbcmd.exe. Moreover, if you have values that are hardcoded in multiple places in your code then specifying those values in .sqlcmdvars ensures that your code adheres to the principle of DRY. Lastly, if values are stored in the .sqlcmdvars file then you can output them at deploy time (see recommendation #7).
Recommendation #10: All literal values should be stored in your .sqlcmdvars file
Recommendation #10: All literal values should be stored in your .sqlcmdvars file
In most SQL Server development shops that I've been on all developers work against a single centralised development database. To me this is an antiquated way of working because its possible that work one person is doing can conflict with that of someone else, I find it much better for every developer to work in isolation and then use the CI deployment to check that one's code is not in conflict with anyone else's. Datadude supports (nay encourages) this way of working with the notion of an Isolated Development Environment:
Every developer should configure their isolated development environment which, typically, would be their local instance. And so to my next recommendation:
Recommendation #11: Every developer should use the Isolated Dev Environment settings in order to author their code
Recommendation #11: Every developer should use the Isolated Dev Environment settings in order to author their code
Incidentally, if every developer has their own development database and you are following my earlier recommendation to use a [DeployLog] table then you can track how often a developer is bothering to deploy and test their code. On a recent project we used this evidence in a (ahem) discussion with a developer who tried to convince us that he was testing his code sufficiently even though he was repeatedly causing the CI deployment to fail.
When projects are no longer required in your database then intuitively it makes sense to remove the file containing that object from the datadude project, I would however like to suggest a different approach. Rather than removing a file just change the Build property to "Not in Build":
This has the advantage that your project maintains some semblance of history of what objects have been removed from your database – that can be useful to anyone inheriting your code in the future.
Recommendation #12: Use "Not in Build" to remove an object from your database
Recommendation #12: Use "Not in Build" to remove an object from your database
Building and deploying your datadude projects within Visual Studio can become a real time hog; in my experience its not unusual for deployments to take many minutes and your Visual Studio environment will be unavailable for further development work during that time. For that reason I recommend investing some time in writing some msbuild scripts that will build and deploy your project(s) from the command-line. Here are some examples that you can adapt for your own use, firstly a script to build a solution:
and secondly a script that will deploy a datadude project:
Writing these scripts may appear to be laborious but they'll save you heaps of time in the long run.
Recommendation #13: Build and deploy to your development sandbox using scripts
Recommendation #13: Build and deploy to your development sandbox using scripts
UPDATE: Upon reading this blog post Mordechai Danielov wrote a follow-up in which he published a useful script that builds a series of projects using Powershell. Its at building your database solutions outside of Visual Studio.
Over the years I've collected some links to MSDN articles that have proved invaluable:
Like any substantial piece of software datadude is not without bugs. Many of the issues I have found are concerned with the datadude interpreter not correctly parsing T-SQL code, here's a list of some bugs that I have found down the years:
Some of these bugs were reported a long time ago and may well have been fixed in later service packs.
I have blogged on datadude quite a bit in the past:
This has been an inordinately large blog post so if you've read this far – well done. For easy reference, here are all the recommendations that I have made:
I really hope this proves useful because its taken a good long while to get it published If you have any feedback then please let me know in the comments.
Thanks for reading!
* When I started writing this blog post the first sentence was "Over the past six months I have worked on two separate projects for customers that wanted to make use of Visual Studio 2010 Database projects to manage their database schema." as opposed to what it is now: "Over the past eighteen months I have worked on four separate projects…" Yes, that's how long its taken to write it!
As stated above, an earlier draft of this blog post included full details of the CI configuration from one of the projects that I have worked on. Although it may repeat some of what has already been said I have included that text below.
This project has invested heavily in using a Continuous Integration (CI) approach to development. What that means, succinctly, is that whenever someone checks-in some code to our source control system an automated build process is kicked off that constructs our entire system from scratch on a dedicated server. CI is not a new concept but it is fairly rare that anyone applies the same rigour to their database objects as they do to so-called "application code" (e.g. the stuff written in .Net code) and on this project we have made a conscious decision to properly build our databases as part of the CI build.
Datadude employs a declarative approach to database development. In other words you define what you want database schema to look like and datadude will work out what it needs to do to your target in order to turn it into what you have defined. What this means in practice is that you only ever write CREATE … DDL statements rather than IF <object-exists> THEN ALTER …ELSE CREATE … statements which is what you may have done in the past.
Here's our CI environment setup:
Datadude makes it very easy to build datadude projects in a CI environment because they are already msbuild-compliant; its simply a call to the MSBuild task, passing in the location of the solution file as an argument. We use the Release configuration (although there is no particular reason for you to do the same – purely your choice):
That's it! The output from a datadude build includes a number of files but the most important one is a .dbschema file which is an XML representation of all the objects in your database.
This is a little more difficult. We *could* simply use the MSBuild task to call our deployment script as we do for build script (see above) but the problem with that is that there are many pre-requisites (including datadude itself) and we don't want to install Visual Studio and all the assorted paraphernalia onto our various environments. Instead we chose to make use of a command-line tool called VSDBCMD.exe to deploy datadude projects. VSDBCMD does basically the same job as what happens if you were to right-click on a datadude project in Visual Studio and select "Deploy" i.e. It compares the output of a build (A) to the target database (B) and works out what it needs to do to make B look like A. It then produces a .sql script that will actually make those requisite changes, then goes and executes it.
The difficulty comes in VSDBCMD.exe having its own list of file dependencies that are listed at MSDN article How to: Prepare a Database for Deployment From a Command Prompt by Using VSDBCMD.EXE, thankfully a much smaller list then if we were using the MSBuild task.
Some of those files, namely:
get installed with SQL Server CE. We bundle along the x86 & x64 installers for SQL Server CE along with all the rest of our deployment artefacts and then, as part of Deploy.proj, install them like so:
That takes care of some of the dependencies but we still have to take care of:
as well as the actual VSDBCMD.exe file itself. Quite simply we keep those files in SVN and then bundle them along with all our deployment artefacts (I won't show you how we do that because its out of the scope of this post and besides if you're at all proficient with msbuild then you'll know how to do that and if you're not, well, why are you reading this?)
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
Great Article! thanks. I'll take a closer look at the composite projects. never took them seriously before. :)
as far as building projects outside of VS. Personally, I like to use Powershell to build my DB solutions. This way I can process an entire directory tree of projects (which I often need to do) by simply pointing the script to the parent dir and running the following:
[string]$output1= &$msbuild $path /nologo /verbosity:n /p:OutputPath=$buildOutput
Hi Mordechai,
Nice, I like that a lot. I'm a big POSH fan.
Brilliant article. As Modechai said, I too need to take another look at composite projects.
I posted the Powershell build script here http://bitwisemnm.com/2012/01/03/building-your-database-solutions-outside-of-visual-studio/
Thanks for sharing your recommendations!
In looking for the Schema View window, I found this forum posting. Looks like the new Data Tools will not have Schema View by default.
Hi Randy,
Yeah, though as Gert says on that link they will be providing a Power Tool to do the same. There was a lot of (ahem) voiciferous feedback (including from myself) on the disappearance of Schema View from SSDT and thankfully they've realised the error that they have made.
Without wanting to reveal too much, I don't think that this is anything to worry about ;)
You "note that this blog post should not necessarily be taken as a recommendation to actually use database projects in Visual Studio 2010" - do you have another favorite method to manage schema, or is that just 18 months of the grass being greener on the other side? Perhaps you've posted on this subject & I've missed it, but I'm sure many people would value your opinions on that.
Jamie, not sure if you glossed over it, but you can reference another database using a DBSchema file generated from a database as well. I've done that to get around the whole chicken & egg problem with cross-database dependencies.
I'm with Ben - I'd like to hear more about other options you've explored. I took a quick look at Red-gate, but their first version wasn't quite where we needed it. Used the earlier DataDude bits as well, but they had a lot more problems. VS2010 resolved most of those - enough to use that version going forward. Still - I'm open to better solutions, especially if they're better suited for CI.
Hi Ben,
I have been so immersed in datadude over the last few years that I don't have any similar experience to speak of. Prior to datadude I worked on projects where schema was managed using SSMS projects which were manually checked-in.out of source control. I can't even remember what I did pre-SSMS days.
I do hear very good things about Red-gate's source control tool (http://www.red-gate.com/products/sql-development/sql-source-control/) and when shown a demo I was rather impressed. It works inside SSMS which they tout as being a benefit (I'm not certain whether supporting development practices inside a tool that is ostensibly an admin tool is necessarily a good thing, though of course SSMS is where most SQL devs spend ther time).
I will say this - if you're not using Source Control then you're doing it wrong. That seems like an obvious thing to say but I'm certain there are still shops out there that aren't bothering (or perhaps are using something antiquated like SourceSafe). In the post above I allude that the infrastuctural part to all this is CI, well the infrastructural part to CI is Source Control - so start from there.
Hope that helps.
"but you can reference another database using a DBSchema file generated from a database as well."
Indeed you can and actually, when you set up a reference to a project you are essentially setting up a rference to the .dbschema file produced by that project so underneath the covers its exactly the same. Thanks for pointing that out Paul.
"I've done that to get around the whole chicken & egg problem with cross-database dependencies."
I don't fully understand how linking to a .dbschema file helps with that scenario mind you. How is it different to what I described above with Composite Projects?
You asked how using a DBSchema file differs from composite projects. Last time I tried to do that, it failed because we run 6 databases that are almost (but not completely) dependent on each other. As soon as we try to set that up against all of our working projects, we get errors that datadude can't handle that because a reference then points back to the current project at least one time. Maybe that was changed in 2010 and if so, I'll switch, but it was definitely an issue through everything up to and including DBPro for VS GDR2. Admittedly, I didn't try a composite project, but I don't remember reading about those a couple years ago.
One advantage that I seem to see over Composite Projects is that you just add that shared DBSchema file as a DB Reference and they just work - you can still keep each actual DB as a separate project. I'm going to need to read up more on Composite Projects to really understand the differences. I'm just not seeing how they work at the moment when you need to reference DB1, DB2, DB3, DB4, and DB5 constantly in your procs, fns, views, etc.
I really like the Pre/Post deploy timestamping idea. I hadn't considered that before, but think it's time to make some changes in our scripts.
One question on composite projects or similar - do you find that if you have multiple DBs as part of that project that the deploy time takes a while? It seems like our build/deploy time keeps approaching 15 minutes per database, especially if it's one of our "core" databases that are used all the time. I suspect that's because the dbschema files are pretty big, but don't know that for sure.
Hi Paul,
"do you find that if you have multiple DBs as part of that project that the deploy time takes a while"
Well, the more databases you have then the longer its going to take, obviously :)
I don't have anything that takes 15 minutes mind you. Having said that, none of the DBs I'm working with at the moment are all that big and we're also not deploying much data into them.
One project that I'm working on has 10 interlinked database and I've maintained them by keeping a directory with dbschema files and using them as reference wherever applicable. One major advantage of this approach over Composite Projects (as I see it) is maintainability. I don't have to worry about which project should a given object live in. and as far as the problem of dbschema file "going stale" it's not a big bother. and if it is, refresh can always be automated.
That's kind of the way we've gone. The biggest problem we have is remembering to keep those separate DBSchema files in sync (could be automated - not there yet). It's not normally a problem, but it does help us to know in which project we should place the objects. I am wondering if it's causing slower deploy times as we have quite a few objects in each project and its DBSchema file. I know we can trim those down, but seems a lot of work to go through each time we gen changes to the necessary objects.
So are you saying that you're using static .dbschema files to hold collections of objects? If so, have you considered using partial projects?
Hi Jamie, yes I am using static dbschema files. I've had this running since before GDR. If they ever go out of synch I just recreate them with my magic msbuild script. Advantage of this approach over partial projects is that I have no restrictions on which DB references which object. with partial projects things can get confusing especially if there are back and forth references. whereas with static files each DB is one project and I don't have to worry too much about object location.
You might say that the advantage of not having to manually refresh static files is better and in most cases simply separating tables from programmable objects will be more than enough, and you may be right. will have to try and see.
meanwhile, here is a deploy script to complement the previous msbuild script:
Thanks for the article! I've been working with DBPro since 2005, but I got quite a few tips here. The CI appendix is especially helpful. CI has been 'down' for awhile now, so I need to rebuild another solution and this should help me get started.
I'm leaning on using PowerShell to script most of the functionality as I already have a mix of PS and .BAT files in use to post-process the sql scripts and deployment.
I use static dbschema files (same as Mordechai) in regards to the circular references issues. I have each project output to a 'Reference' directory which is then used to create dbschema references as necessary.
Rarely run into issues and when there is a true circular reference, I just 'play' with one of the projects a bit to remove the dependency temporarily on that side, so that it can build and that the other project can reference it properly. Then I re-enable the dependency and rebuild the other project. If need be, I'll discuss with the programmer if a design change can be made to prevent the circular ref issue.
I looked into partial/composite projects also, but they seemed overly complex in comparison to my solution above. Though I may revisit them later.
Apologies to Peter for twice referring to him as Paul!!!
We considered (and tried) partial projects, but with the huge dependencies across our 7 databases, they were much more trouble than they were worth. Using the DBSchema (or dacpac in SSDT) files as DB References greatly simplified the cross-database coding aspect, although time to build/deploy went up massively in 2010. In SSDT, the time to build/deploy dropped down to a much more acceptable level when referencing DacPac files for DB References.
@Ty - when we hit those circular references on new builds, I make sure that the "Use Transactional Scripts" option is turned off. That will let most of the objects deploy without issue and I can then re-deploy the DBs that are failing at the end of a new build process. Generally that's the only time I run into that issue so it tends to work once we're past that point.
Excellent for Beginers...
need one complete demo of database project for me.
jamiet said:
... well as long as you weren't robbing him to pay Paul I'm sure he'll forgive you, and you'll forgive yourself! :)
Hi Jamie,
Awesome work here I'll be following most if not all of your tips.
For Recommendation #12: Use "Not in Build" to remove an object from your database, I found that Deleting the object via Schema View has a similar effect, except it keeps the script file in the build while erasing it's contents.
Purely a matter of preference I guess though perhaps the latter approach offers a more obvious indicator to the next guy that the object isn't going to get created on deploy?
Hi Gareth,
Personally I think there's more value in keeping that code visible - I have had occasions where it has been useful to see code that *used* to be used (e.g. when investigating data errors that have laid unnoticed for many months).
Yep, I suppose that saves you having to get a previous version from source control and if all the people working on the project are aware to use the Not In Build approach
I just had a quick play with it and agree with you now as I see that it removes the item from Schema View straight away - so if your team is all using Schema View primarily to work with the source you get the best of both world so to speak.
Thanks again
Publish profile files are a new feature of SSDT database projects that enable you to package up all environment-specific
TYhanks for the great post! There isn't alot about VS2010 database projects out there especially regarding CI. I seriously appreciate all of the info!
My recent article Get to Know SQL Server 2012's SQL Server Data Tools prompted two questions to come
Dear Mr. XXX,
I have seen your blog related to visual studio, it has come out very well. It has lot of information related to .net which is helpful to developers like us.
We recently developed a product called 'Tremplin'. This tool will develop complete database application without involving you to write single line of code. I request you to write one article about our product and publish in your site. Since your site attracts lot of visitors, this will be of great help to us and intern we can offer one year free license to you.
You can also take complete 30 minute course about this product at
Please see this intro video http://www.youtube.com/watch?v=vrbJ0HzcLZI
If you want more information you may visit www.erachana.net
Thanks and Regards
Shashank Kamath
Customer Relationship Manager
ERachana Software
Email Id:email@example.com


text:
- Home
- Editor's Desk
- Features
- Columns
- Arts & Culture
- Special Editions
- Advertising
Sunday September 23, 2018; 11:27 pm EDT
A Bay Weekly conversation with local author Mick Blackistone
Mick Blackistone has a name in Chesapeake Country.
Part of it came to him effortlessly, by the grace of inheritance.
Blackistone is a name of reckoning in Maryland history. Mick, 66, his twin brother, two older sisters and scads of cousins are the 14th generation to descend from Nathaniel Blackistone, colonist under Lord Baltimore's land grant, who arrived in Maryland in the party of the Arc and Dove in 1634.
Mick's own part of it, he made on eight-plus books and behind dozens of pieces of county, state and national legislation on behalf of people whose livelihood and pleasure are linked to the water.
His books all have water links, too, to the Chesapeake through watermen or the creatures of the Bay. The newest, Just Passing Through, is poetry; it updates his first and only self-published book. Two books document the lives of watermen: Sunup to Sundown: Watermen of the Chesapeake (1998) and Dancing with the Tide (2001). Three more are children's books, The Day They Left the Bay (1988), The River and the Buffalo (1990) and Broken Wings Will Fly (1992). One, published in 2008, is a book of short reflections: Remembering You.
With his new book in hand, we talked about making books and making laws.
v v v v v
Bay Weekly How did this book-making habit of yours get started?
Blackistone I wrote poetry and songs as a college student at University of Maryland. I did one song as a record and got poetry in magazines, but I was never successful getting a publisher. Like everyone else, I'd mail it out, get it back, mail it out, get it back. You live with rejection. So Whitey Schmidt, the crab guru and one of the only people I know who's made a success of self-publishing, talked me into self-publishing my first poetry book.
Bay Weekly Until this year, when Schiffer Publishing issued a new edition of Just Passing Through, that book has been a well-kept secret. How did you get from obscurity to The Day They Left the Bay, the book that made your name?
Blackistone I was writing two more books at about the same time. For a contest, I wrote an article to involve kids in the environment. I decided that, instead, I'd turn it into a book for kids. That became The Day They Left the Bay.
Simultaneously, I was running the Maryland Marine Trades Association and doing a lot of work with the Maryland Watermen's Association. I concluded that people didn't understand what's happening to watermen as an important subculture of our society on the Bay. So I decided to do a book about a year in the life of the watermen. That became Sunup to Sundown: Watermen of the Chesapeake.
Bay Weekly Where does the inspiration come from?
Blackistone I don't write just to write. I don't do three hours a day or whatever. I write for a reason, to get it done and get it out. I'm not interested in cranking books out like Nora Roberts or John Grisham.
I want people to understand Bay watermen and their past and future. I want kids to understand the environment and care for it. I get a notion, then I come up with my idea. It goes back to writing songs. You come just with your hook — and mine are always my titles. Then I know where I'm going.
Bay Weekly So why have you switched to reflections and poetry in your last two books?
Blackistone It's another way for me to express my feelings about where we live and the people who live here.
Bay Weekly Your books have always looked good.
Blackistone All are illustrated with art or photos by local people. I pick my own photographers and illustrators.
Bay Weekly How do your publishers take to that?
Blackistone I put it together before I give it to publishers. Acropolis wanted to assign me an artist. I didn't like any of the work they showed me, so I went to Maryland Hall, and I looked at a lot of other illustrators. When I saw Lee Boynton's work, I said That's the guy. He illustrated The Day They Left the Bay.
Editor's note: Boynton is a top-rated Maryland impressionist.
The photos in Sunup are by James Parker from Severna Park.
The other two children's books are by Jennifer Heyd Wharton, who's gone on to make a name for herself as an illustrator and web designer.
I paid the illustrators, and the story went as a package with art or photos.
Bay Weekly How did you get Marion Warren's photographs for Just Passing Through, since that great photographer of Chesapeake Country died in 2006?
Blackistone I worked with Marion on the first edition way back when. For this new edition, I got permission from Mame Warren, Marion's daughter and executor, and worked with Joanie Surette, his artistic representative. She went to the Maryland Archives, where all Marion's work now resides, for the photos.
My interest was to set a level of emotion to where we live, and you can't do any better than with Marion's photos.
Bay Weekly All authors know that getting a book published doesn't get it sold. You've always been very active in publicizing your books.
Blackistone I've been more selective in the last decade. I don't do big bookstores any more; I've never enjoyed them. I like doing small bookshops, school sales, festivals like Tilghman Island Day or Patuxent River Appreciation Day where you meet and greet people.
Bay Weekly Do your publishers promote your books?
Blackistone I've not got a lot of faith because of my experience with three or four. This is my first real experience with Schiffer, who also got Dancing with the Tide and Broken Wings when they bought the Tidewater-Cornell Maritime Press operation.
Bay Weekly All this time you've worked a regular job.
Blackistone There's not enough money in publishing or writing to make a living. It's like musicians or poets or authors. Unless you're a rock star, you're not going to make money. You've got to be creative in your own mind. What do you like to do? Find your passion, and emulate good people.
Bay Weekly What's the key skill you've depended on?
Blackistone Being able to explain an issue and what it meant to people's lives. I was good at communicating. If you're talking the maritime or fishing industries, the general population, legislators included, knew very little from the business standpoint. Once they understood, for the most part, people said I'm with you.
For example, in the 1990s, the federal 10 percent luxury tax on the sale of boats over $100,000 was killing our marine industry. Sen. Barbara Mikulski, who's been very supportive of Maryland maritime industries, voted for it. I was at the Maryland Marine Trades Industry at the time, and I went to Mikulski's office in Baltimore and told her about the businesses, people and jobs and that we were going down the tubes. In six months to a year, we'd lost a vast majority of our boat dealers and manufacturers in the state, and a lot of dealerships dealt with big boats. She reversed her position and helped get the tax repealed.
Bay Weekly In your books and in your work, you've always looked beyond the industry to the Bay. Where do we stand on that score today?
Blackistone The biggest threat to our fisheries is water quality, just as it's been all of my lifetime. I think the [new, federally mandated] Total Daily Maximum Loads approach could get us momentum. I also think it's going to take money to improve sewage treatment plants in town after town, and they're all the bridges to water quality. All the counties and states are crying this is going to cost so much money, when money is what it's going to take. People have to put money where their mouths are.
Find Blackistone's eight books at www.mickblackistone.com. Meet him Sunday, June 24, when he signs books at The Eastport Gallery, 419 Fourth St., Annapolis, from 2-5pm.


text:
BATON ROUGE – The LSU Board of Supervisors today approved a plan to transition graduate medical education, or GME, programs; inpatient care; and outpatient clinics from Earl K. Long Medical Center, or EKLMC, in Baton Rouge to Our Lady of the Lake Regional Medical Center effective April 15, 2013. Residents in EKLMC GME programs will be now rotating at OLOL, including LSU-NO residents who rotate in Baton Rouge, and the clinics will remain open and continue operating as they do now in order to preserve important health care access for the community.
In the public-private partnership agreement between LSU and OLOL that was established in 2010, all graduate medical education programs and related inpatient care provided at EKLMC were scheduled to transition to Our Lady of the Lake in November 2013. At today's LSU Board of Supervisors meeting, Dr. Frank Opelka, LSU System executive vice president of Health Care and Medical Education Redesign, presented a memorandum of understanding, agreed upon by both organizations, that moves this transition up to April 15. The board unanimously approved the memorandum of understanding.
"While we are accelerating our timeline for this partnership, the staff and administrators of LSU and Our Lady of the Lake have been discussing this transition for some time, giving serious consideration to how we can provide the highest quality of care and the greatest educational experience," Opelka said. "We are in agreement that our plan to move services in April is the best decision for our patients, our residents and the community, and we look forward to this new era of providing health services and medical education in the Baton Rouge area."
Once services are transferred to Our Lady of the Lake, EKLMC, located at 5825 Airline Highway, will close effective April 15. Our Lady of the Lake will assume responsibility for inpatient treatment previously offered at EKLMC and maintain patients' access to hospital care. The LSU Health clinics will remain open at their current locations, which include the LSU North Baton Rouge Clinic on Airline Highway, Mid City Clinic on South Foster Drive, South Baton Rouge clinic at the Leo Butler Community Center and the LSU Surgical Facility on Perkins Road. Clinics open on the current EKLMC campus today will be transitioned to these existing clinic locations as well as the resident clinics to be located at OLOL within O'Donovan Medical Plaza. This will preserve important health access, as the majority of patients served through LSU Health are treated in the outpatient clinics. In addition, urgent care services will operate in temporary space at the North Baton Rouge Clinic Airline Highway site to assure uninterrupted access for urgent care needs once the EKLMC campus closes and before the new Urgent Care Center is complete this summer. Prisoners previously seen at EKLMC will continue to be served by LSU providers throughout the region.
"The LSU clinics and the staff that serve patients in them are an important part of the local health care system, and we will contribute our expertise so that these clinics will stay open and be easily accessible, just as they are today," said Scott Wester, chief executive officer at OLOL. "Our goal is to improve clinic access, which should result in fewer ER visits and hospitalizations for patients. This collaboration aligns with our 90-year mission of ensuring that everyone who needs health care has access."
Between now and April 15, teams from LSU Health, EKLMC and Our Lady of the Lake will work together to prepare for this transition, which includes communication with patients, medical records transfer, patient scheduling and follow up for both procedures and on-going care. In particular, LSU is working with the 834 full time and part-time employees of EKLMC to make them aware of job opportunities with OLOL. OLOL welcomes and encourages all EKLMC clinic and hospital employees to apply for the many open positions that comprise the continuation of health care services, and anticipates hiring a majority of the current EKL employees. LSU will work with the Louisiana Workforce Commission to assist affected EKL employees. Information is available and will be regularly updated at the website www.transitionLSUHealthBR.com.
The LSU Health system decided to accelerate this planned transition of services because of Congress's sudden action in July that reduced Louisiana's Federal Medical Assistance Percentage, or FMAP, rate to the lowest it has been in more than 25 years. The FMAP reduction eliminated $126.9 million in State General Funds from the LSU Health System's budget, which amounts to a total reduction of $329.2 million when federal funds that would have been used for match are considered. This funding loss has prompted immediate and significant reform of the state's health care programs.
LSU officials in October announced a plan to balance their budget in light of these unexpected FMAP reductions that keeps all hospitals operational and maintains critical services, including the medical home-model clinics that provide much of the care to recipients in the public hospital system today.
The most instrumental part of this plan involved establishing public-private partnerships, like the landmark partnership with OLOL, for other hospitals in the LSU System. In the past two months, state health officials have announced similar partnerships are in development for Interim LSU Hospital and its successor University Medical Center in New Orleans with Louisiana Children's Medical Center; Leonard J. Chabert Hospital in Houma with Ochsner Health System and Terrebonne General Medical Center; University Medical Center in Lafayette with its neighbor, Lafayette General Medical Center; and Walter O. Moss Regional Medical Center in Lake Charles with Lake Charles Memorial Hospital and its partner, West Calcasieu Cameron Hospital.
"This is a great day for health care in Louisiana as we move forward to transform the LSU Health System. This agreement preserves access to high quality health care for those who need it; advances graduate medical education for our medical students and residents; and provides Louisiana tax payers the best value for their tax dollar," said Department of Health and Hospitals Secretary Bruce D. Greenstein. "I commend Our Lady of the Lake and the LSU Health System for their tireless work as they strive to make this transition a smooth one. This relationship represents the beginning of the LSU Health System transformation, and DHH is proud to be a part of the team as we continue to reform health care in our state."
LSU Health Baton Rouge will transfer its GME programs at EKLMC in emergency medicine and internal medicine to OLOL. It has already transferred its program in obstetrics and gynecology to Woman's Hospital. LSU Health Baton Rouge also offers a joint psychiatry residency program with OLOL. LSU Health Baton Rouge has a total of 107 residents in these programs.
Nearly 70 residents from LSU Health New Orleans also rotate through LSU Health Baton Rouge. They are residents in dermatology, general dentistry, ophthalmology, oral and maxillofacial surgery, orthopedics, ear, nose and throat, medicine/dermatology, psychiatry, plastic surgery, vascular surgery, general surgery, emergency medicine, internal medicine, anesthesia, and physical medicine and rehabilitation. With the transfer of LSU GME, these residents will rotate at OLOL.
For further information, contact Marvin McGraw, director of communications and media relations, LSU Health, HCSD, 225-354-7039, firstname.lastname@example.com.
Ernie Ballard
LSU Media Relations
Posted on Friday, February 1, 2013


text:
By Kim Dixon
WASHINGTON (Reuters) - A U.S. Treasury Department official on Thursday rebuffed accusations from congressional Democrats who say he was biased in his investigation of the Internal Revenue Service's controversial scrutiny of Tea Party-linked political groups.
Treasury Inspector General for Tax Administration, Russell George, made his comments in prepared testimony to a House of Representatives Committee, which was holding a series of hearings on whether the IRS unfairly targeted and scrutinized conservative groups applying for tax exempt status.
George rejected accusations made by some Democratic lawmakers that he did not fully disclose that his office found no political motivation behind the IRS' heightened scrutiny in 2010-2012 of applications for tax-exempt status submitted by conservative political groups.
"That is not correct," he said in the written remarks. "None of this information has been withheld from Congress." George was due to address the committee later in the day.
A report from George's office in May found "inappropriate targeting" and poor management by the IRS of how it enforced laws that allow some non-profits groups to be tax-exempt, depending on their level of political involvement.
Some Republican lawmakers have said that the IRS's review of tax-exemption applications from conservative groups, done largely at a branch office in Cincinnati, was somehow directed from Washington, possibly for political reasons.
Democrats have said that there is no evidence of this. They released a 36-page memo on Tuesday with excerpts of interviews with 15 IRS employees which they said backed their argument. Two IRS employees who spoke to the committee on Thursday also said there was no evidence of political interference.
The hearing and George's defense of his inquiry into the matter marked the latest twists in a tale that rocked the IRS, prompting President Barack Obama to oust the agency's chief in May. It prompted an FBI investigation and a congressional probe.
George also said in his prepared testimony that his office was looking into evidence presented by Democrats that liberal-leaning groups faced IRS treatment similar to that given to conservative groups.
Democratic and Republican congressional investigators have conducted more than a dozen private interviews with IRS staff. Some of these staffers talked publicly for the first time at the hearing about their work.
Carter Hull, a Washington official involved in handling tax-exemption applications, told the House of Representatives Oversight and Government Reform Committee at the hearing that he was assigned to review 'test cases' from the Tea Party-linked groups.
The Tea Party movement, which is fiercely anti-Obama and advocated for smaller government and lower taxes, was still a new force in U.S. politics at that time.
Hull told lawmakers that processing of these applications was delayed because higher-ups wanted more time to review them. He called that an unusual level of oversight in his experience with 48 years of service with the agency.
Elizabeth Hofacre, an agency employee in the Cincinnati branch office, also testified. "I was frustrated by what I perceived as micro-management," she said.
Neither she nor Hull said they had any knowledge of any scrutiny done for political reasons.
(Additional reporting by Patrick Temple-West; Reporting By Kim Dixon; Editing by Kevin Drawbaugh)


text:
Energy Saving Grants in Bury St. Edmunds - Aran Services
Energy Saving Home Improvement Funding - Grant funding has recently changed, more details coming soon. If you would like to find out more now, please call or email our contact team.
The Government, Energy Suppliers and Local Authorities all provide us with grants to help you implement energy saving measures in your home. ECO Grant Funding supports the improvement of homes nationwide; increasing the thermal comfort of homes, reducing fuel bills and assisting to alleviate fuel poverty.
Request A Call Back
Loft and Cavity Wall Insulation Grants
ALL homeowners, renting tenants and landlords are entitled to a grant towards Loft and Cavity Insulation regardless of income. Up to 100%* grant funding is available to many more homes with the expansion of qualifying criteria, even if you arent eligible for 100% funding all homes are eligible for support.
Click here to see current prices.
Solid Wall Insulation Grants
Solid Wall Insulation also attracts grant funding. Funding levels are dependent on many variable including fuel type, property size and type. Aran Services will complete a funding quotation based on your bespoke property assessment.
For more information click here.
Heating Grants
You may be entitled to a grant towards a new boiler or heating system with grants covering up to 100% of the installation costs. Heating grants are normally means tested, but maybe area click here to see if you qualify or call our contact team.
Renewable Heat Incentives
Renewable Energy Incentives are nationwide programmes and include the Feed In Tariff (FiT) and Renewable Heat Incentive (RHI). There are many reasons to install renewable energy the available incentives are only a small part of the story.
Local Authority Funding
We work with many Local Authorities and Councils across the UK. Please click on your Local Authority to find out what funding schemes are up and running in your area. New grants and schemes are always being introduced, if your area is not listed dont worry please call Aran Services on 0800 5877795 or email email@example.com and ask what insulation grants are available in your area.
North West
South East
East Midlands
Yorkshire & Humber
Further energy saving services available at Aran Services...
Start receiving the benefits of lower energy bills and a warmer, more comfortable home by contacting us for a no obligation survey.
Aran Services offer energy saving grants covering Bury St. Edmunds and the surrounding areas of Suffolk
Energy Conservation Services in Bury St Edmunds:
- Air Source Heat Pump Bury St Edmunds
- Cavity Wall Insulation Bury St Edmunds
- Energy Saving Grants Bury St. Edmunds
- Energy Saving Requirements for Landlords in Bury St Edmunds
- External Wall insulation Grants Bury St Edmunds
- High Rise Cavity Wall Insulation Bury St Edmunds
- Loft Insulation Bury St Edmunds
- Pay As you Save Energy Saving Finance Bury St. Edmunds
- Solid Wall Insulation Bury St Edmunds


text:
From the "what-wil-they-think-of-next" department, a MyDoom variant is making the rounds. The user receives a "returned email" notification. If they open an attachment to see the message "returned" to them, they get bit. Here is a link to an article about this attack.. I am also posting a sample I received. Addresses altered to protect the innocent.
Mail delivery failed: returning message to sender
Mail Delivery System <firstname.lastname@example.com>
Yesterday 03:35:20 pm
Spam Status: Spamassassin 0% probability of being spam.
Full report:
No, score=0.0 required=5.0 tests=none autolearn=ham version=3.1.1
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
SMTP error from remote mail server after end of data:
host pobox.sfu.ca [xxxxxxxxxxxx]: 550 5.7.1 illegal extension:
readme.zip. Please send as a zip file.
------ This is a copy of the message, including all the headers. ------
Return-path: <email@example.com>
Received: from xxxxxxxxxxxxxx ([xxxxxxxxxxxx] helo=carolina.rr.com)
by xxxxxxxxxx with esmtp (Exim 4.60)
(envelope-from <firstname.lastname@example.com>
id 1Fqb8o-000LXc-0O
for firstname.lastname@example.com; Wed, 14 Jun 2006 12:35:03 -0700
From: email@example.com
To: email@example.com
Subject: Mail System Error - Returned Mail
Date: Wed, 14 Jun 2006 12:38:52 -0700
MIME-Version: 1.0
Content-Type: multipart/mixed;
X-Priority: 3
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook Express 6.00.2600.0000
X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2600.0000
X-Scanner: OK. Scanned.
X-Uniserve-Spam-Score: 3.3 33 (+++)
X-Uniserve-Spam-Report: Spam detection software, running on the system "mx8.uniserve.ca", has
identified this incoming email as possible spam. The original message
has been attached to this so you can view it (if it isn't spam) or block
similar future email. If you have any questions, see
the administrator of that system for details.
Content preview: Dear user of sfu.ca, administration of sfu.ca would
like to inform you We have detected that your account was used to send
a large amount of spam during the recent week. We suspect that your
computer was compromised and now runs a trojan proxy server. [...]
Content analysis details: (3.3 points, 5.0 required)
pts rule name description
---- ---------------------- --------------------------------------------------
0.3 NO_REAL_NAME From: does not include a real name
3.0 FORGED_MUA_OUTLOOK Forged mail pretending to be from MS Outlook
This is a multi-part message in MIME format.
Content-Type: text/plain;
Content-Transfer-Encoding: 7bit
Dear user of sfu.ca, administration of sfu.ca would like to inform you
We have detected that your account was used to send a large amount of spam during the recent week.
We suspect that your computer was compromised and now runs a trojan proxy server.
Please follow instruction in order to keep your computer safe.
Have a nice day,
sfu.ca technical support team.
Content-Type: application/octet-stream;
Content-Transfer-Encoding: base64
Content-Disposition: attachment;